Exemplo n.º 1
0
        /// <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;
        }