/// <summary> /// Updates the list entry. /// </summary> /// <param name="siteURL">The site URL.</param> /// <param name="listEntry">The list entry.</param> /// <param name="listName">Name of the list.</param> /// <param name="auditListName">Audit List Name.</param> /// <param name="userName">User Name.</param> /// <param name="actionPerformed">Audit Action.</param> /// <returns>ID of the Chapter Created/Updated.</returns> /// <exception cref="">Handled in calling method.</exception> internal string UpdateListEntry(string siteURL, ListEntry listEntry, string listName, string auditListName, string userName, string actionPerformed) { SPList list; SPQuery query; SPListItem objListItem; SPListItemCollection objListItemCollection; SPFieldLookupValue lookupField; int intPageSequence = 10; int intListItemId = 0; string strListGuid = string.Empty; StringBuilder sbMethodBuilder = new StringBuilder(); string strChapterID = string.Empty; string strBatch = string.Empty; string strBatchFormat = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<ows:Batch OnError=\"Return\">{0}</ows:Batch>"; string strMethodFormat = "<Method ID=\"{0}\">" + "<SetList>{1}</SetList>" + "<SetVar Name=\"Cmd\">Save</SetVar>" + "<SetVar Name=\"ID\">{2}</SetVar>" + "<SetVar Name=\"urn:schemas-microsoft-com:office:office#Chapter_Sequence\">{3}</SetVar>" + "</Method>"; SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite site = new SPSite(siteURL)) { using (SPWeb web = site.OpenWeb()) { web.AllowUnsafeUpdates = true; list = web.Lists[listName]; query = new SPQuery(); strListGuid = list.ID.ToString(); objListItem = list.Items.Add(); if (string.Equals(actionPerformed, AUDIT_ACTION_UPDATION)) { objListItem = list.GetItemById(listEntry.ChapterDetails.RowID); } objListItem["Title"] = listEntry.ChapterDetails.ChapterTitle; objListItem["Asset_Value"] = listEntry.ChapterDetails.AssetValue; objListItem["Actual_Asset_Value"] = listEntry.ChapterDetails.ActualAssetValue; objListItem["Country"] = listEntry.ChapterDetails.Country; objListItem["Criteria"] = listEntry.ChapterDetails.Criteria; objListItem["Column_Name"] = listEntry.ChapterDetails.ColumnName; objListItem["Book_ID"] = listEntry.ChapterDetails.BookID; if (!string.IsNullOrEmpty(listEntry.ChapterDetails.AssetType)) { lookupField = new SPFieldLookupValue(Convert.ToInt32(listEntry.ChapterDetails.AssetType), ""); objListItem["Asset_Type"] = lookupField; } objListItem["Chapter_Description"] = listEntry.ChapterDetails.ChapterDescription; objListItem["Template_ID"] = listEntry.ChapterDetails.TemplateID; if (!string.IsNullOrEmpty(listEntry.ChapterDetails.Terminated)) { objListItem["Terminate_Status"] = listEntry.ChapterDetails.Terminated; } objListItem.Update(); strChapterID = objListItem["ID"].ToString(); listEntry.ChapterDetails.RowID = int.Parse(objListItem["ID"].ToString()); string strNoOfActiveChapters = string.Empty; if (string.Equals(actionPerformed, AUDIT_ACTION_CREATION)) { query.Query = @"<OrderBy><FieldRef Name='Chapter_Sequence' /></OrderBy><Where><And><Eq><FieldRef Name='Terminate_Status' /><Value Type='Choice'>No</Value></Eq><Eq><FieldRef Name='Book_ID' /><Value Type='Number'>" + listEntry.ChapterDetails.BookID.ToString() + "</Value></Eq></And></Where>"; objListItemCollection = list.GetItems(query); if (objListItemCollection != null && objListItemCollection.Count > 0) { strNoOfActiveChapters = objListItemCollection.Count.ToString(); for (int intIndex = 0; intIndex < objListItemCollection.Count; intIndex++) { int.TryParse(Convert.ToString(objListItemCollection[intIndex]["ID"]), out intListItemId); if (intListItemId != listEntry.ChapterDetails.RowID) { intPageSequence = intPageSequence + 10; sbMethodBuilder.AppendFormat(strMethodFormat, intListItemId, strListGuid, intListItemId, intPageSequence); } else { sbMethodBuilder.AppendFormat(strMethodFormat, intListItemId, strListGuid, intListItemId, 10); } } strBatch = string.Format(strBatchFormat, sbMethodBuilder.ToString()); web.ProcessBatchData(strBatch); } objCommonDAL = new CommonDAL(); /// Update the DWB Books list with no of active chapters objCommonDAL.UpdateNoOfActiveChapters(siteURL, DWBBOOKLIST, listEntry.ChapterDetails.BookID.ToString(), strNoOfActiveChapters.ToString()); } web.AllowUnsafeUpdates = false; objCommonDAL = new CommonDAL(); objCommonDAL.UpdateListAuditHistory(siteURL, auditListName, listEntry.ChapterDetails.RowID, userName, actionPerformed); } } }); return strChapterID; }