{"id":47,"date":"2022-02-03T20:17:16","date_gmt":"2022-02-03T17:17:16","guid":{"rendered":"http:\/\/foonk.ddns.net\/?p=47"},"modified":"2023-09-15T12:41:50","modified_gmt":"2023-09-15T09:41:50","slug":"eventreciever-%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd","status":"publish","type":"post","link":"https:\/\/kb.astrocroc.com\/?p=47","title":{"rendered":"EventReciever \u0448\u0430\u0431\u043b\u043e\u043d"},"content":{"rendered":"\n<p>\u0412 Elements.xml \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"\" data-line=\"\">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;\n&lt;Elements xmlns=&quot;http:\/\/schemas.microsoft.com\/sharepoint\/&quot;&gt;\n &lt;Receivers ListUrl=&quot;\/request\/proxy\/Lists\/Proxy&quot;&gt;  \/\/\u0412\u041e\u0422 \u0422\u0423\u0422\n   &lt;Receiver&gt;\n        &lt;Name&gt;ProxyERItemAdded&lt;\/Name&gt;\n        &lt;Type&gt;ItemAdded&lt;\/Type&gt;\n        &lt;Assembly&gt;$SharePoint.Project.AssemblyFullName$&lt;\/Assembly&gt;\n        &lt;Class&gt;PAC.Proxy.ProxyER.ProxyER&lt;\/Class&gt;\n        &lt;SequenceNumber&gt;10000&lt;\/SequenceNumber&gt;\n      &lt;\/Receiver&gt;\n      &lt;Receiver&gt;\n        &lt;Name&gt;ProxyERItemUpdated&lt;\/Name&gt;\n        &lt;Type&gt;ItemUpdated&lt;\/Type&gt;\n        &lt;Assembly&gt;$SharePoint.Project.AssemblyFullName$&lt;\/Assembly&gt;\n        &lt;Class&gt;PAC.Proxy.ProxyER.ProxyER&lt;\/Class&gt;\n        &lt;SequenceNumber&gt;10000&lt;\/SequenceNumber&gt;\n      &lt;\/Receiver&gt;\n  &lt;\/Receivers&gt;\n&lt;\/Elements&gt;\n<\/code><\/pre>\n\n\n\n<p>\u0412 Feature1 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c Web \u0447\u0430\u0441\u0442\u0438, \u043e\u0431\u043b\u0430\u0441\u0442\u044c Site, \u0432 Feature2 \u0442\u043e\u043b\u044c\u043a\u043e EventReciever, \u043e\u0431\u043b\u0430\u0441\u0442\u044c Web<\/p>\n\n\n\n<p>\u0428\u0430\u0431\u043b\u043e\u043d:<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-cs\" data-line=\"\">\/\/\/ &lt;summary&gt;\n\/\/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442.\n\/\/\/ &lt;\/summary&gt;\npublic override void ItemAdded(SPItemEventProperties properties)\n{\n    base.ItemAdded(properties);\n    Execute(properties);\n}\n\n\/\/\/ &lt;summary&gt;\n\/\/\/ \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442.\n\/\/\/ &lt;\/summary&gt;\npublic override void ItemUpdated(SPItemEventProperties properties)\n{\n    base.ItemUpdated(properties);\n    Execute(properties);\n}\n\n\/\/\/ &lt;summary&gt;\n\/\/\/ \u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\n\/\/\/ &lt;\/summary&gt;\n\/\/\/ &lt;param name=&quot;properties&quot;&gt;&lt;\/param&gt;\nvoid Execute(SPItemEventProperties properties)\n{\n    try\n    {\n\n    }\n    catch (Exception e)\n    {\n        SendError(properties.ListItem, e.Message);\n        throw;\n    }\n}\n\n\/\/\/ &lt;summary&gt;\n\/\/\/ \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0438\u0441\u044c\u043c\u043e\n\/\/\/ &lt;\/summary&gt;\n\/\/\/ &lt;param name=&quot;to&quot;&gt;&lt;\/param&gt;\n\/\/\/ &lt;param name=&quot;subject&quot;&gt;&lt;\/param&gt;\n\/\/\/ &lt;param name=&quot;body&quot;&gt;&lt;\/param&gt;\nprivate void SendMessage(string to, string subject, string body)\n{\n    SmtpClient sc = new SmtpClient(&quot;casarray.pac.local&quot;);\n    MailMessage msg = new MailMessage();\n    msg.IsBodyHtml = true;\n    msg.From = new MailAddress(&quot;sharepoint@pac.ru&quot;);\n\n    msg.To.Add(to);\n    \/\/msg.To.Add(&quot;v.fedunov@pac.ru&quot;);\n    \/\/msg.Bcc.Add(&quot;v.fedunov@pac.ru&quot;);\n    \/\/msg.Bcc.Add(&quot;e.gelvig@pac.ru&quot;);\n    \/\/msg.Bcc.Add(&quot;sharepoint@pac.ru&quot;);\n    msg.Subject = subject;\n\n    \/\/msg.Body = to + &quot;&lt;br\/&gt;&quot;;\n    msg.Body = body;\n\n    \/\/\u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\n    sc.Send(msg);\n}\n\n\/\/\/ &lt;summary&gt;\n\/\/\/ \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0438\u0441\u044c\u043c\u043e \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439\n\/\/\/ &lt;\/summary&gt;\n\/\/\/ &lt;param name=&quot;to&quot;&gt;&lt;\/param&gt;\n\/\/\/ &lt;param name=&quot;subject&quot;&gt;&lt;\/param&gt;\n\/\/\/ &lt;param name=&quot;body&quot;&gt;&lt;\/param&gt;\nprivate void SendErrorMessage(string to, string subject, string body)\n{\n    SmtpClient sc = new SmtpClient(&quot;casarray.pac.local&quot;);\n    MailMessage msg = new MailMessage();\n    msg.IsBodyHtml = true;\n    msg.From = new MailAddress(&quot;sharepoint@pac.ru&quot;);\n\n    msg.To.Add(to);\n\n    msg.Subject = subject;\n    msg.Body = body;\n    \/\/\u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\n    sc.Send(msg);\n}\n\n\/\/\/ &lt;summary&gt;\n\/\/\/ \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\n\/\/\/ &lt;\/summary&gt;\n\/\/\/ &lt;param name=&quot;item&quot;&gt;&lt;\/param&gt; \nvoid DoUpdate(SPListItem item)\n{\n    SPItemEventReceiverHandling rh = new SPItemEventReceiverHandling();\n    rh.DisableEventFiring();\n    \/\/\u0421\u0442\u0430\u0442\u0443\u0441 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f ER\n    item[&quot;EventStatus&quot;] = &quot;\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d&quot;;\n    \/\/\u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c\n    item.Update();\n    rh.EnableEventFiring();\n}\n\n\/\/\/ &lt;summary&gt;\n\/\/\/ \u0421\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\n\/\/\/ &lt;\/summary&gt;\n\/\/\/ &lt;param name=&quot;item&quot;&gt;&lt;\/param&gt;\nvoid DoSystemUpdate(SPListItem item)\n{\n    SPItemEventReceiverHandling rh = new SPItemEventReceiverHandling();\n    rh.DisableEventFiring();\n    \/\/\u0421\u0442\u0430\u0442\u0443\u0441 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f ER\n    item[&quot;EventStatus&quot;] = &quot;\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d&quot;;\n    \/\/\u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c\n    item.SystemUpdate();\n    rh.EnableEventFiring();\n}\n\n\/\/\/ &lt;summary&gt;\n\/\/\/ \u0421\u043c\u0435\u043d\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0430\n\/\/\/ &lt;\/summary&gt;\n\/\/\/ &lt;param name=&quot;status&quot;&gt;&lt;\/param&gt;\n\/\/\/ &lt;param name=&quot;itm&quot;&gt;&lt;\/param&gt;\nvoid SetStatus(string status, SPListItem itm)\n{\n    SPItemEventReceiverHandling rh = new SPItemEventReceiverHandling();\n\n    itm[&quot;EventStatus&quot;] = status;\n\n    rh.DisableEventFiring();\n    itm.Update();\n    rh.EnableEventFiring();\n}\n\n\/\/ &lt;summary&gt;\n\/\/\/ \u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u043e\u0448\u0438\u0431\u043a\u0438\n\/\/\/ &lt;\/summary&gt;\n\/\/\/ &lt;param name=&quot;itm&quot;&gt;&lt;\/param&gt;\n\/\/\/ &lt;param name=&quot;error&quot;&gt;&lt;\/param&gt;        \nvoid SendError(SPListItem itm, string error)\n{\n    SetStatus(&quot;\u041e\u0448\u0438\u0431\u043a\u0430&quot;, itm);\n    SendErrorMessage(&quot;v.fedunov@pac.ru&quot;, &quot;Event error&quot;, &quot;List: &quot; + itm.Web.Site.Url + itm.ParentList.DefaultDisplayFormUrl + &quot;?ID=&quot; + itm.ID + &quot;&lt;br\/&gt;&quot; + error);\n}\n\nprivate class SPItemEventReceiverHandling : SPItemEventReceiver\n{\n    public SPItemEventReceiverHandling()\n    {\n    }\n\n    new public void DisableEventFiring()\n    {\n        base.EventFiringEnabled = false;\n    }\n\n    new public void EnableEventFiring()\n    {\n        base.EventFiringEnabled = true;\n    }\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u0412 Elements.xml \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0412 Feature1 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c Web \u0447\u0430\u0441\u0442\u0438, \u043e\u0431\u043b\u0430\u0441\u0442\u044c Site, \u0432 Feature2 \u0442\u043e\u043b\u044c\u043a\u043e EventReciever, \u043e\u0431\u043b\u0430\u0441\u0442\u044c Web \u0428\u0430\u0431\u043b\u043e\u043d:<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[38,33],"class_list":["post-47","post","type-post","status-publish","format-standard","hentry","category-sharepoint","tag-event-receiver","tag-sharepoint"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":6}},"_links":{"self":[{"href":"https:\/\/kb.astrocroc.com\/index.php?rest_route=\/wp\/v2\/posts\/47","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kb.astrocroc.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kb.astrocroc.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kb.astrocroc.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kb.astrocroc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=47"}],"version-history":[{"count":3,"href":"https:\/\/kb.astrocroc.com\/index.php?rest_route=\/wp\/v2\/posts\/47\/revisions"}],"predecessor-version":[{"id":342,"href":"https:\/\/kb.astrocroc.com\/index.php?rest_route=\/wp\/v2\/posts\/47\/revisions\/342"}],"wp:attachment":[{"href":"https:\/\/kb.astrocroc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=47"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kb.astrocroc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=47"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kb.astrocroc.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=47"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}