locked
Event Handler Save Conflict Error RRS feed

  • Question

  • Hi i am trying to raise an Itemadded event on a list to update few fields after new item is added. I am stuck with this save conflict error since 1 day now. can any one help and ease my pain?. It works fine when i add the user to full control permission.


    Please note that this Issue was previously raised by me and i thought it was fixed but apparently it returned some how




    my code

    public override void ItemAdded(SPItemEventProperties properties)
            {
                            


                string weburl = properties.WebUrl;
                int itemID = properties.ListItemId;
                int UserID = properties.CurrentUserId;

     

                SPListItem item;
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    //using (SPSite _site = new SPSite(properties.WebUrl))
                    using (SPSite _site = new SPSite(weburl))
                    {
                        // using (SPWeb _web = _site.OpenWeb(properties.RelativeWebUrl))
                        using (SPWeb _web = _site.OpenWeb())
                        {
                              

                            try
                            {

                                item = _web.Lists["WRIT"].Items.GetItemById(itemID);




                                //  properties.ListItem["Assigned To"] = lsGrp;
                                SPGroup lsGrp = _web.Groups["WRIT-Legal Services"];

                                item["Assigned To"] = lsGrp;
                                this.DisableEventFiring();
                                item.SystemUpdate();
                                this.EnableEventFiring();

                                SPUser SPusr;
                                try
                                {
                                    SPusr = _web.Users.GetByID(UserID);
                                }
                                catch (Exception ex)
                                {
                                    SPusr = _web.CurrentUser;
                                }
                                string CreatedUser;
                                if (SPusr.Email != "" || SPusr != null)
                                {
                                    CreatedUser = SPusr.Email;
                                }
                                else
                                {
                                    CreatedUser = "";
                                }

                                ArrayList LSgrparray = new ArrayList();

                                foreach (SPUser usr in _web.Groups["WRIT-Legal Services"].Users)
                                {
                                    if (usr.Email != null || usr.Email != "")
                                    {
                                        LSgrparray.Add(usr.Email);
                                    }
                                }







                                string retVal = "";

                                //sendEmail(LSgrparray, item.ID.ToString (), CreatedUser);








                                //  string retVal = sendEmail(_web.Groups["WRIT-Legal Services"].Users, properties.ListItem["ID"].ToString(), CreatedUser);
                                if (retVal != "")
                                { item["CodeBehindErrors"] = retVal; }



                                // properties.ListItem.Update();


                                //properties.ListItem["Group1"] = "1";


                                #region Confidential Field

                                string confidential;



                                try
                                {

                                    SPFieldMultiChoiceValue itemValue = new SPFieldMultiChoiceValue(item["Confidential"].ToString());

                                    confidential = itemValue[0].ToString();

                                }
                                catch (Exception ex)
                                { confidential = "No"; }


                                if (confidential == "Yes")
                                {
                                    item["BDGroupAllowed"] = "0";

                                    item["CPGroupAllowed"] = "0";

                                    item["EPGroupAllowed"] = "0";

                                    item["EGGroupAllowed"] = "0";

                                    item["HRGroupAllowed"] = "0";

                                    item["ISDGroupAllowed"] = "0";

                                    item["PLSGroupAllowed"] = "0";

                                    item["SCISGroupAllowed"] = "0";

                                    item["TLFGroupAllowed"] = "0";

                                }

                                SPFieldUserValueCollection AssignedToUsrs0;
                                try
                                {
                                    AssignedToUsrs0 = (SPFieldUserValueCollection)item["Assigned To"];
                                }
                                catch (Exception ex)
                                {
                                    AssignedToUsrs0 = null;
                                }
                                if (AssignedToUsrs0 != null)
                                {
                                    for (int i = 0; i <= AssignedToUsrs0.Count - 1; i++)
                                    {
                                        if (AssignedToUsrs0[i].User == null)
                                        {
                                            SPGroup grp = _web.Groups[AssignedToUsrs0[i].LookupValue];

                                            if (grp.Name == "WRIT-Business Development")
                                            {
                                                item["BDGroupAllowed"] = "1";
                                            }
                                            else if (grp.Name == "WRIT-Copyright and Permissions")
                                            {
                                                item["CPGroupAllowed"] = "1";
                                            }
                                            else if (grp.Name == "WRIT-Education Projects")
                                            {
                                                item["EPGroupAllowed"] = "1";
                                            }
                                            else if (grp.Name == "WRIT-Executive Group")
                                            {
                                                item["EGGroupAllowed"] = "1";
                                            }
                                            else if (grp.Name == "WRIT-HR")
                                            {
                                                item["HRGroupAllowed"] = "1";
                                            }
                                            else if (grp.Name == "WRIT-ISD")
                                            {
                                                item["ISDGroupAllowed"] = "1";
                                            }
                                            else if (grp.Name == "WRIT-School Services")
                                            {
                                                item["PLSGroupAllowed"] = "1";
                                            }
                                            else if (grp.Name == "WRIT-SCIS")
                                            {
                                                item["SCISGroupAllowed"] = "1";
                                            }
                                            else if (grp.Name == "WRIT-TLF")
                                            {
                                                item["TLFGroupAllowed"] = "1";
                                            }

                                        }
                                       
                                    }
                                }




                                #endregion
     

                                if (confidential != "Yes")
                                {

                                    #region Assigned To Field
                                    SPFieldUserValueCollection AssignedToUsrs;
                                    try
                                    {
                                        AssignedToUsrs = (SPFieldUserValueCollection)item["Assigned To"];
                                    }
                                    catch (Exception ex)
                                    {
                                        AssignedToUsrs = null;
                                    }
                                    if (AssignedToUsrs != null)
                                    {
                                        for (int i = 0; i < AssignedToUsrs.Count - 1; i++)
                                        {
                                            if (AssignedToUsrs[i].User == null)
                                            {
                                                SPGroup grp = _web.Groups[AssignedToUsrs[i].LookupValue];

                                                if (grp.Name == "WRIT-Business Development")
                                                {
                                                    item["BDGroupAllowed"] = "1";
                                                }
                                                else if (grp.Name == "WRIT-Copyright and Permissions")
                                                {
                                                    item["CPGroupAllowed"] = "1";
                                                }
                                                else if (grp.Name == "WRIT-Education Projects")
                                                {
                                                    item["EPGroupAllowed"] = "1";
                                                }
                                                else if (grp.Name == "WRIT-Executive Group")
                                                {
                                                    item["EGGroupAllowed"] = "1";
                                                }
                                                else if (grp.Name == "WRIT-HR")
                                                {
                                                    item["HRGroupAllowed"] = "1";
                                                }
                                                else if (grp.Name == "WRIT-ISD")
                                                {
                                                    item["ISDGroupAllowed"] = "1";
                                                }
                                                else if (grp.Name == "WRIT-School Services")
                                                {
                                                    item["PLSGroupAllowed"] = "1";
                                                }
                                                else if (grp.Name == "WRIT-SCIS")
                                                {
                                                    item["SCISGroupAllowed"] = "1";
                                                }
                                                else if (grp.Name == "WRIT-TLF")
                                                {
                                                    item["TLFGroupAllowed"] = "1";
                                                }

                                            }
                                            else if (AssignedToUsrs[i].User != null)
                                            {

                                                SPGroupCollection UsrGrpColl = AssignedToUsrs[i].User.Groups;
                                                foreach (SPGroup grp in UsrGrpColl)
                                                {
                                                    if (grp.Name == "WRIT-Business Development")
                                                    {
                                                        item["BDGroupAllowed"] = "1";
                                                    }
                                                    else if (grp.Name == "WRIT-Copyright and Permissions")
                                                    {
                                                        item["CPGroupAllowed"] = "1";
                                                    }
                                                    else if (grp.Name == "WRIT-Education Projects")
                                                    {
                                                        item["EPGroupAllowed"] = "1";
                                                    }
                                                    else if (grp.Name == "WRIT-Executive Group")
                                                    {
                                                        item["EGGroupAllowed"] = "1";
                                                    }
                                                    else if (grp.Name == "WRIT-HR")
                                                    {
                                                        item["HRGroupAllowed"] = "1";
                                                    }
                                                    else if (grp.Name == "WRIT-ISD")
                                                    {
                                                        item["ISDGroupAllowed"] = "1";
                                                    }
                                                    else if (grp.Name == "WRIT-School Services")
                                                    {
                                                        item["PLSGroupAllowed"] = "1";
                                                    }
                                                    else if (grp.Name == "WRIT-SCIS")
                                                    {
                                                        item["SCISGroupAllowed"] = "1";
                                                    }
                                                    else if (grp.Name == "WRIT-TLF")
                                                    {
                                                        item["TLFGroupAllowed"] = "1";
                                                    }
                                                }

                                            }
                                        }
                                    }
                                    #endregion

     
                                       
     

                              
                        }
                    }
                });
            }


    • Edited by Mike Walsh FIN Tuesday, February 23, 2010 4:46 AM Do not Shout in Titles. CAPs removed.
    Tuesday, February 23, 2010 1:54 AM

Answers

  • Hi, Likki

     

           Would you please make sure web.AllowUnsafeUpdates is true first?

           You can also add DisableEventFiring() and EnableEventFiring() and SystemUpdate() for your updating logic.

           ------------------------------------------------------------------------

            base.DisableEventFiring();

            //You code

            item.SystemUpdate(false);

            base.EnableEventFiring();      

           ------------------------------------------------------------------------

     

           Hope this can help.

     

     Best Regards,

     -Aaron

    • Marked as answer by Chengyi Wu Friday, March 5, 2010 6:42 AM
    Wednesday, February 24, 2010 8:37 AM

All replies

  • I have to chop some code to fit the max size :(
    Tuesday, February 23, 2010 1:54 AM
  • I have debugged code and below is the specific error. please kindly help me.thanks


    at Microsoft.SharePoint.Library.SPRequest.AddOrUpdateItem(String bstrUrl, String bstrListName, Boolean bAdd, Boolean bSystemUpdate, Boolean bPreserveItemVersion, Boolean bUpdateNoVersion, Int32& plID, String& pbstrGuid, Guid pbstrNewDocId, Boolean bHasNewDocId, String bstrVersion, Object& pvarAttachmentNames, Object& pvarAttachmentContents, Object& pvarProperties, Boolean bCheckOut, Boolean bCheckin, Boolean bMigration, Boolean bPublish)
       at Microsoft.SharePoint.SPListItem.AddOrUpdateItem(Boolean bAdd, Boolean bSystem, Boolean bPreserveItemVersion, Boolean bNoVersion, Boolean bMigration, Boolean bPublish, Boolean bCheckOut, Boolean bCheckin, Guid newGuidOnAdd, Int32& ulID, Object& objAttachmentNames, Object& objAttachmentContents, Boolean suppressAfterEvents)
       at Microsoft.SharePoint.SPListItem.UpdateInternal(Boolean bSystem, Boolean bPreserveItemVersion, Guid newGuidOnAdd, Boolean bMigration, Boolean bPublish, Boolean bNoVersion, Boolean bCheckOut, Boolean bCheckin, Boolean suppressAfterEvents)
       at Microsoft.SharePoint.SPListItem.SystemUpdate()
       at WRIT_item_Handlr.WRIT_item_Handlr.<>c__DisplayClass7.<ItemAdded>b__6()
    Tuesday, February 23, 2010 3:17 AM
  • Hi, Likki

     

           Would you please make sure web.AllowUnsafeUpdates is true first?

           You can also add DisableEventFiring() and EnableEventFiring() and SystemUpdate() for your updating logic.

           ------------------------------------------------------------------------

            base.DisableEventFiring();

            //You code

            item.SystemUpdate(false);

            base.EnableEventFiring();      

           ------------------------------------------------------------------------

     

           Hope this can help.

     

     Best Regards,

     -Aaron

    • Marked as answer by Chengyi Wu Friday, March 5, 2010 6:42 AM
    Wednesday, February 24, 2010 8:37 AM