private void AddAssistant(int id, DateTime dt, int during, int actionID)
        {
            SPWeb      web       = SPContext.Current.Web;
            int        userID    = web.CurrentUser.ID;
            SPList     lstAction = web.Lists.TryGetList(objWeb.ListName);
            SPListItem item;
            string     custID;

            if (id > 0)
            {
                item   = lstAction.GetItemById(id);
                custID = item[lstAction.Fields.GetFieldByInternalName("CustAction").Title].ToString();
                if (actionID != int.Parse(Regex.Split(custID, ";#")[0]))
                {
                    item = lstAction.AddItem();
                }
            }
            else
            {
                item = lstAction.AddItem();
            }
            item[lstAction.Fields.GetFieldByInternalName("CustAction").Title] = actionID;

            item[lstAction.Fields.GetFieldByInternalName("ActualDate").Title]   = dt;
            item[lstAction.Fields.GetFieldByInternalName("ActualDuring").Title] = during;
            item.Update();
        }
예제 #2
0
        }//End Getlookupvalues

/******************************************************************************************************************************************/
        public static void addListItem(SPList list, Dictionary <string, object> itemProperties, string url = null)
        {
            var item = url == null?list.AddItem() : list.AddItem(url, SPFileSystemObjectType.File);

            foreach (var property in itemProperties)
            {
                item[property.Key] = property.Value;
            }
            item.Update();
        }//End additems
예제 #3
0
        /// <summary>
        /// The IDs of these two lists need to be in sync for the precreation process to work correctly.
        /// </summary>
        /// <param name="precreatedWorkBoxesList"></param>
        /// <param name="requestPrecreatedWorkBoxList"></param>
        private void MakeSureListsAreInSync(SPList precreatedWorkBoxesList, SPList requestPrecreatedWorkBoxList)
        {
            List <SPListItem> itemsToDelete = new List <SPListItem>();

            SPListItem requestNextItem = requestPrecreatedWorkBoxList.AddItem();

            requestNextItem.Update();
            itemsToDelete.Add(requestNextItem);

            int safety               = 0;
            int safetyCutOut         = 1000;
            int nextPrecreatedListID = -1;

            while (nextPrecreatedListID < requestNextItem.ID && safety < safetyCutOut)
            {
                safety++;

                SPListItem nextItem = precreatedWorkBoxesList.AddItem();
                nextItem.Update();
                nextPrecreatedListID = nextItem.ID;
                itemsToDelete.Add(nextItem);
            }

            int nextRequestListID = requestNextItem.ID;

            // Just in case the lists are out of sync the other way around:
            while (nextRequestListID < nextPrecreatedListID && safety < safetyCutOut)
            {
                safety++;

                SPListItem nextItem = requestPrecreatedWorkBoxList.AddItem();
                nextItem.Update();
                nextRequestListID = nextItem.ID;
                itemsToDelete.Add(nextItem);
            }


            if (safety >= safetyCutOut)
            {
                WBUtils.SendErrorReport(this.Collection.Web, "Work Box Precreation Error", "The safety cutout was exceeded when trying to synchronise the two precreate lists for template: " + TemplateTitle);
                throw new NotImplementedException("The safety cutout was exceeded when trying to synchronise the two precreate lists for template: " + TemplateTitle);
            }

            foreach (SPListItem item in itemsToDelete)
            {
                item.Delete();
            }

            precreatedWorkBoxesList.Update();
            requestPrecreatedWorkBoxList.Update();

            // So, now the 'next ID' value for both of these two lists is the same.
        }
예제 #4
0
        public bool AddVoteInfo(string strCreativity)
        {
            string siteUrl = SPContext.Current.Site.Url;

            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                using (SPSite spSite = new SPSite(siteUrl)) //找到网站集
                {
                    using (SPWeb spWeb = spSite.OpenWeb(SPContext.Current.Web.ID))
                    {
                        SPList spList = spWeb.Lists.TryGetList(webObj.VoteDetail);
                        string ip     = getIP();
                        if (spList != null)
                        {
                            spWeb.AllowUnsafeUpdates = true;
                            SPListItem listItem;
                            string ID            = Page.Request.QueryString["ID"];
                            listItem             = spList.AddItem();
                            listItem["创意名称"]     = ID + ";#" + strCreativity;
                            listItem["VoteDate"] = DateTime.Today.ToShortDateString();
                            listItem["IP"]       = ip;
                            //listItem["作品状态"] = strAction;
                            listItem.Update();

                            spWeb.AllowUnsafeUpdates = false;
                        }
                    }
                }
            });
            return(true);
        }
예제 #5
0
        private SPListItem EnsureListItem(SPList list, ListItemDefinition listItemModel)
        {
            // TODO, lazy to query
            // BIG TODO, don't tell me, I know that
            var currentItem = list.Items
                              .OfType <SPListItem>()
                              .FirstOrDefault(i => i.Title == listItemModel.Title);

            InvokeOnModelEvent(this, new ModelEventArgs
            {
                CurrentModelNode = null,
                Model            = null,
                EventType        = ModelEventType.OnProvisioning,
                Object           = currentItem,
                ObjectType       = typeof(SPListItem),
                ObjectDefinition = listItemModel,
                ModelHost        = list
            });

            if (currentItem == null)
            {
                var newItem = list.AddItem();

                newItem["Title"] = listItemModel.Title;

                InvokeOnModelEvent(this, new ModelEventArgs
                {
                    CurrentModelNode = null,
                    Model            = null,
                    EventType        = ModelEventType.OnProvisioned,
                    Object           = newItem,
                    ObjectType       = typeof(SPListItem),
                    ObjectDefinition = listItemModel,
                    ModelHost        = list
                });

                newItem.Update();

                return(newItem);
            }
            else
            {
                currentItem["Title"] = listItemModel.Title;

                InvokeOnModelEvent(this, new ModelEventArgs
                {
                    CurrentModelNode = null,
                    Model            = null,
                    EventType        = ModelEventType.OnProvisioned,
                    Object           = currentItem,
                    ObjectType       = typeof(SPListItem),
                    ObjectDefinition = listItemModel,
                    ModelHost        = list
                });

                currentItem.Update();

                return(currentItem);
            }
        }
예제 #6
0
        public static void Create_ctRB_Form(SPWeb web, int klientId, int okresId, string key, SPListItem klientItem, Models.Klient iok)
        {
            Logger.LogEvent("Create_ctRB_Form", klientId.ToString());

            SPList     list    = web.Lists.TryGetList(targetList);
            SPListItem newItem = list.AddItem();

            BLL.Tools.Set_Value(newItem, "selKlient", klientId);
            BLL.Tools.Set_Value(newItem, "selOkres", okresId);
            BLL.Tools.Set_Text(newItem, "KEY", key);

            Models.Okres o = new Models.Okres(web, okresId);

            BLL.Tools.Set_Text(newItem, "Title", string.Format("Opłata za obsługę {0}", o.Nazwa));

            double om = BLL.tabStawki.Get_OplataMiesieczna(web, klientId);

            if (om > 0)
            {
                BLL.Tools.Set_Value(newItem, "colDoZaplaty", om);
            }
            else
            {
                BLL.tabStawki.Ensure_KlientExist(web, klientId);
            }

            newItem.SystemUpdate();
        }
예제 #7
0
        public static string UpdateLogData(string entityName, string addfields, string deletefields, string connectionString)
        {
            SPWeb   web   = SPContext.Current.Web;
            SPList  list  = web.GetList("/Lists/InformationLogs");
            SPQuery query = new SPQuery();

            query.Query = string.Format("<Where> \r\n                                         <Eq>\r\n                                            <FieldRef Name='EntityName' />\r\n                                            <Value Type='Text'>{0}</Value>\r\n                                        </Eq>\r\n                                       </Where>", entityName);
            SPListItemCollection items = list.GetItems(query);
            SPListItem           item  = (items.Count > 0) ? items[0] : list.AddItem();

            item["EntityName"] = entityName;
            if (item["Fields"] != null)
            {
                item["Fields"] = item["Fields"].ToString() + "," + addfields;
            }
            else
            {
                item["Fields"] = addfields;
            }
            item["ConnectionString"] = connectionString;
            web.AllowUnsafeUpdates   = true;
            item.Update();
            web.AllowUnsafeUpdates = false;
            createTableAndSp(entityName, addfields, item["Fields"].ToString(), items.Count > 0);
            return("");
        }
예제 #8
0
        public bool AddPerformRecord(SPItemEventProperties properties, string strAction, string strPerformance, SPUser author)
        {
            string siteUrl = properties.Site.Url;
            SPUser lgUser  = properties.Web.CurrentUser;

            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                using (SPSite spSite = new SPSite(siteUrl)) //找到网站集
                {
                    using (SPWeb spWeb = spSite.OpenWeb(properties.Web.ID))
                    {
                        string childListName = properties.List.Title + "业绩";
                        SPList spList        = spWeb.Lists.TryGetList(childListName);
                        if (spList != null)
                        {
                            spWeb.AllowUnsafeUpdates     = true;
                            SPListItem listItem          = spList.AddItem();
                            string lookupInternalName    = GetSubTitleInterlname(properties).Trim();
                            listItem[lookupInternalName] = properties.ListItemId;                                       // +";#" + strPerformance;
                            listItem[GetDispNameByInternalName(spList, "Author")]     = lgUser.ID + ";#" + lgUser.Name; //"创建者"
                            listItem[GetDispNameByInternalName(spList, "AuthorName")] = author.ID + ";#" + author.Name; //"创建者"
                            listItem[GetDispNameByInternalName(spList, "Action")]     = strAction;
                            listItem[GetDispNameByInternalName(spList, "State")]      = "待定";
                            this.EventFiringEnabled = false;//否则会死循环
                            listItem.Update();
                            this.EventFiringEnabled  = true;
                            spWeb.AllowUnsafeUpdates = false;
                        }
                    }
                }
            });
            return(true);
        }
예제 #9
0
        internal static SPListItem Send(SPWeb web, MailMessage msg, int klientId)
        {
            SPList     list    = DB.tabWiadomosci.GetList(web);
            SPListItem newItem = list.AddItem();

            newItem["Title"] = msg.Subject;

            if (msg.From == null || string.IsNullOrEmpty(msg.From.Address))
            {
                msg.From = new MailAddress(DB.admSetup.GetValue(web, "EMAIL_BIURA"));
            }

            newItem["colNadawca"]  = msg.From.Address;
            newItem["colOdbiorca"] = msg.To[0].Address;

            if (msg.IsBodyHtml)
            {
                newItem["colTresc"]     = string.Empty;
                newItem["colTrescHTML"] = msg.Body;
            }
            else
            {
                newItem["colTresc"]     = msg.Body;
                newItem["colTrescHTML"] = string.Empty;
            }

            if (klientId > 0)
            {
                newItem["selKlient_NazwaSkrocona"] = klientId;
            }

            newItem.Update();
            return(newItem);
        }
예제 #10
0
        public void SaveOrUpdate(SPWeb spWeb, List <BusinessTripSchedule> items)
        {
            SPList spList = spWeb.GetList($"{spWeb.Url}{ListUrl}");

            spWeb.AllowUnsafeUpdates = true;
            foreach (var item in items)
            {
                SPListItem spListItem;
                if (item.ID > 0)
                {
                    spListItem = spList.GetItemById(item.ID);
                }
                else
                {
                    spListItem = spList.AddItem();
                }

                spListItem[StringConstant.BusinessTripScheduleList.Fields.BusinessTripManagementID] = item.BusinessTripManagementID.LookupId;
                spListItem[StringConstant.BusinessTripScheduleList.Fields.DepartDate]     = item.DepartDate.Value;
                spListItem[StringConstant.BusinessTripScheduleList.Fields.FlightName]     = item.FlightName;
                spListItem[StringConstant.BusinessTripScheduleList.Fields.City]           = item.City;
                spListItem[StringConstant.BusinessTripScheduleList.Fields.Country]        = item.Country;
                spListItem[StringConstant.BusinessTripScheduleList.Fields.ContactCompany] = item.ContactCompany;
                spListItem[StringConstant.BusinessTripScheduleList.Fields.ContactPhone]   = item.ContactPhone;
                spListItem[StringConstant.BusinessTripScheduleList.Fields.OtherSchedule]  = item.OtherSchedule;

                spListItem.Update();
            }
            spWeb.AllowUnsafeUpdates = false;
        }
예제 #11
0
        private static int Create_KartaKontrolna(SPListItem task, string KEY, SPList list)
        {
            SPListItem newItem = list.AddItem();

            newItem["KEY"]       = KEY;
            newItem["selKlient"] = Get_LookupId(task, "selKlient");
            newItem["selOkres"]  = Get_LookupId(task, "selOkres");

            BLL.Models.Klient k = new Models.Klient(task.Web, Get_LookupId(task, "selKlient"));

            Set_KartaKontrolna_InitValues(newItem, k);

            //ustaw CT
            if (k.TypKlienta == "KSH")
            {
                newItem["ContentType"] = "Karta kontrolna KSH";
            }
            else
            {
                newItem["ContentType"] = "Karta kontrolna KPiR";
            }

            newItem.SystemUpdate();

            return(newItem.ID);
        }
예제 #12
0
        public int SaveOrUpdate(SPWeb spWeb, BusinessTripEmployeeDetail item)
        {
            int itemId = 0;

            SPList     spList = spWeb.GetList($"{spWeb.Url}{ListUrl}");
            SPListItem spListItem;

            if (item.ID > 0)
            {
                spListItem = spList.GetItemById(item.ID);
            }
            else
            {
                spListItem = spList.AddItem();
            }

            spListItem[StringConstant.BusinessTripEmployeeDetailsList.Fields.BusinessTripManagementID] = item.BusinessTripManagementID.LookupId;
            spListItem[StringConstant.BusinessTripEmployeeDetailsList.Fields.Employee] = item.Employee.LookupId;

            spWeb.AllowUnsafeUpdates = true;
            spListItem.Update();
            itemId = spListItem.ID;
            spWeb.AllowUnsafeUpdates = false;

            return(itemId);
        }
예제 #13
0
        private void AddFilesDetailsFromAlfresco(WBMigrationMapping mapping, SPSite controlSite, SPWeb controlWeb, SPList controlList, SPView controlView, SPListItem migrationItem, string folderPath)
        {
            WBFarm farm           = WBFarm.Local;
            string csvFileDetails = WBUtils.GetURLContents(folderPath, farm.MigrationUserName, farm.MigrationPassword);

            string[] filesDetails = csvFileDetails.Split('\n');

            foreach (string fileDetails in filesDetails)
            {
                string[] parts = fileDetails.Split(',');

                if (parts.Length > 3)
                {
                    // So we're only going to add new file paths to the migration control list:
                    if (WBUtils.FindItemByColumn(controlSite, controlList, WBColumn.SourceFilePath, parts[0]) == null)
                    {
                        SPListItem newMigrationItem = controlList.AddItem();

                        newMigrationItem.WBxCopyFrom(migrationItem, WBColumn.MappingPath);
                        newMigrationItem.WBxSet(WBColumn.SourceFilePath, parts[0]);
                        newMigrationItem.WBxSet(WBColumn.FileOrFolder, WBColumn.FILE_OR_FOLDER__FILE);
                        newMigrationItem.WBxSet(WBColumn.Title, parts[1]);
                        newMigrationItem.WBxSet(WBColumn.SourceID, parts[2]);
                        newMigrationItem.WBxSet(WBColumn.ReferenceID, parts[4]);
                        newMigrationItem.WBxSet(WBColumn.ReferenceDateString, parts[5]);
                        newMigrationItem.WBxSet(WBColumn.DeclaredDateString, parts[7]);

                        newMigrationItem.Update();
                    }
                }
            }

            migrationItem.WBxSet(WBColumn.MigrationStatus, WBColumn.MIGRATION_STATUS__DONE);
            migrationItem.Update();
        }
예제 #14
0
 private void ListPopulateContent(ref SPList list, string webUrl)
 {
     //only if list empty
     if (InitialListContent != null &&
         InitialListContent.Count > 0 &&
         list.ItemCount == 0)
     {
         foreach (Dictionary <string, object> iRow in InitialListContent)
         {
             SPListItem newItem = list.AddItem();
             foreach (KeyValuePair <string, object> iField in iRow)
             {
                 if (list.Fields.ContainsField(iField.Key) && list.Fields.GetField(iField.Key).Type == SPFieldType.Lookup)
                 {
                     SPFieldLookup lkp = (SPFieldLookup)list.Fields.GetField(iField.Key);
                     newItem[iField.Key] = GetLookupValue(webUrl, lkp, (string)iField.Value);
                 }
                 else
                 {
                     newItem[iField.Key] = iField.Value;
                 }
             }
             newItem.Update();
         }
     }
 }
예제 #15
0
        public void Save(string key, string value, string contextId)
        {
            Validation.ArgumentNotNull(key, "key");
            Validation.ArgumentNotNull(value, "value");

            SPListItemCollection items = QueryListItems(key, contextId);

            if (items.Count == 0)
            {

                SPList list = ListInstance;
                SPListItem item = list.AddItem();
                item[SettingKeyFieldId] = key;
                item[SettingWebIdFieldId] = contextId;
                item[SettingValueFieldId] = value;
                item["Title"] = key;
                item.Update();
            }
            else
            {
                SPListItem item = items[0];
                item[ConfigValueField] = value;
                item.Update();
            }
        }
예제 #16
0
        public int SaveOrUpdate(SPWeb spWeb, BusinessTripSchedule item)
        {
            int itemId = 0;

            SPList     spList = spWeb.GetList($"{spWeb.Url}{ListUrl}");
            SPListItem spListItem;

            if (item.ID > 0)
            {
                spListItem = spList.GetItemById(item.ID);
            }
            else
            {
                spListItem = spList.AddItem();
            }

            spListItem[StringConstant.BusinessTripScheduleList.Fields.BusinessTripManagementID] = item.BusinessTripManagementID.LookupId;
            spListItem[StringConstant.BusinessTripScheduleList.Fields.DepartDate]     = item.DepartDate.Value;
            spListItem[StringConstant.BusinessTripScheduleList.Fields.FlightName]     = item.FlightName;
            spListItem[StringConstant.BusinessTripScheduleList.Fields.City]           = item.City;
            spListItem[StringConstant.BusinessTripScheduleList.Fields.Country]        = item.Country;
            spListItem[StringConstant.BusinessTripScheduleList.Fields.ContactCompany] = item.ContactCompany;
            spListItem[StringConstant.BusinessTripScheduleList.Fields.ContactPhone]   = item.ContactPhone;
            spListItem[StringConstant.BusinessTripScheduleList.Fields.OtherSchedule]  = item.OtherSchedule;

            spWeb.AllowUnsafeUpdates = true;
            spListItem.Update();
            itemId = spListItem.ID;
            spWeb.AllowUnsafeUpdates = false;

            return(itemId);
        }
예제 #17
0
        //The method below enables items to be saved to a list on each column
        public void saveToList()
        {
            //connect to the web site
            using (SPSite theSite = new SPSite("url"))
            {
                //opens the site
                using (SPWeb theWeb = theSite.OpenWeb())
                {
                    //connects to a list
                    SPList     list = theWeb.Lists["Sharepoint List"];
                    SPListItem item = list.AddItem();


                    //this section below saves question into the list

                    item["Column1"] = TextBox1.Text;
                    item["Column2"] = TextBox2.Text;
                    item["Column3"] = TextBox3.Text;
                    item["Column4"] = TextBox4.Text;
                    item["Column5"] = TextBox5.Text;
                    item["Column6"] = TextBox6.Text;

                    item.Update();
                }
            }
        }
예제 #18
0
        public void LogError(LogOptions option, Exception ex, string additionalInfo)
        {
            try
            {
                SPContext context = SPContext.GetContext(HttpContext.Current);
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    using (SPWeb web = new SPSite(context.Web.Url).OpenWeb())
                    {
                        web.AllowUnsafeUpdates = true;
                        // implementation details omitted
                        SPList list         = web.Lists["Error-Log"];
                        SPField authorField = list.Fields.GetFieldByInternalName("Author0");
                        SPListItem newItem  = list.AddItem();
                        int maxLength       = 255;
                        string trimmedTitle = ex.Message.Length > maxLength - 1 ? ex.Message.Substring(0, maxLength) : ex.Message;

                        int userId      = context.Web.CurrentUser.ID;
                        string userName = context.Web.CurrentUser.LoginName;
                        SPFieldUserValue authorFieldValue = new SPFieldUserValue(web, userId, userName);

                        newItem["Title"]        = trimmedTitle;
                        newItem["Comment"]      = ex.Message + Environment.NewLine + ex.StackTrace + Environment.NewLine + (ex.InnerException != null ? ex.InnerException.Message : "No Inner Exception") + Environment.NewLine + (ex.InnerException != null ? ex.InnerException.StackTrace : "No Inner Exception Detail" + Environment.NewLine + additionalInfo);
                        newItem["Category"]     = categories[(int)option];
                        newItem[authorField.Id] = authorFieldValue;
                        newItem["IP"]           = HttpContext.Current.Request.UserHostAddress;
                        newItem.Update();

                        web.AllowUnsafeUpdates = false;
                    }
                });
            }
            catch { }
        }
        public void AddMailTemplateUsageObject(string alertID, MailTemplateUsageObject mObject)
        {
            try
            {
                if (mailTemlateUsageList != null)
                {
                    SPListItem listItem = mailTemlateUsageList.AddItem();
                    listItem[ListAndFieldNames.MTUAlertFieldName]    = alertID + ";#" + alertID;
                    listItem[ListAndFieldNames.MTUTemplateFieldName] = mObject.Template.ID + ";#" + mObject.Template.Name;

                    //Event Type Registered
                    foreach (AlertEventType aType in mObject.AlertType)
                    {
                        listItem[ListAndFieldNames.settingsListEventTypeFieldName] += aType + ";#";
                    }


                    listItem[ListAndFieldNames.MTUHighLightUpdatedFieldsFieldName] = mObject.HighLightUpdatedFields;
                    listItem[ListAndFieldNames.MTUInsertAttachmentsFieldName]      = mObject.InsertAttachments;
                    listItem[ListAndFieldNames.MTUInsertUpdatedFieldsFieldName]    = mObject.InsertUpdatedFields;
                    listItem[ListAndFieldNames.MTUShareTemplateWithAllUsers]       = mObject.ShareTemplateWithAllUsers;

                    //Other information in xml format
                    listItem.Update();
                }
                else
                {
                    //unable to get mailtemplate usage list
                }
            }
            catch { }
        }
예제 #20
0
        /// <summary>
        /// Na podstawie wprowadzonego tematu zadania sprawdza czy istnieje taka procedura, jeżeli nie istnieje to ją dodaje w statusie nowy,
        /// jeżeli istnieje i jest zatwierdzona to zwraca jej ID. W pozostałych przypadkach zwraca 0;
        /// </summary>
        /// <param name="web"></param>
        /// <param name="procName"></param>
        /// <returns></returns>
        public static int Ensure(SPWeb web, string procName, bool ignorujStatusProcedury)
        {
            SPList list = web.Lists.TryGetList(targetList);

            SPListItem item = list.Items.Cast <SPListItem>()
                              .Where(i => i.Title.Equals(procName))
                              .FirstOrDefault();

            if (item == null)
            {
                SPListItem newItem = list.AddItem();
                newItem["Title"] = procName;
                newItem["enumStatusProcedury"] = "Nowa";
                newItem.Update();
                return(newItem.ID);
            }
            else
            {
                if (BLL.Tools.Get_Text(item, "enumStatusProcedury").Equals("Zatwierdzona") ||
                    ignorujStatusProcedury)
                {
                    return(item.ID);
                }
                else
                {
                    return(0);
                }
            }
        }
예제 #21
0
        protected void btnAdicionar_Click(object sender, EventArgs e)
        {
            using (SPSite site = new SPSite(SPContext.Current.Site.Url))
            {
                using (SPWeb web = site.RootWeb)
                {
                    SPList listMeusSistemas = web.Lists.TryGetList(LIST_MEUSSISTEMAS);

                    if (listMeusSistemas != null)
                    {
                        var query = new SPQuery()
                        {
                            Query = String.Format(@"<Where><And><Eq><FieldRef Name='Sistema' /><Value Type='Lookup'>{0}</Value></Eq><Eq><FieldRef Name='Author' /><Value Type='User'>{1}</Value></Eq></And></Where>", ddlSistemas.SelectedValue, web.CurrentUser.Name)
                        };

                        SPListItemCollection sistemas = listMeusSistemas.GetItems(query);

                        if (sistemas.Count == 0)
                        {
                            SPListItem novoSistema = listMeusSistemas.AddItem();
                            novoSistema["Sistema"] = ddlSistemas.SelectedValue;
                            novoSistema.Update();

                            Page.Response.Redirect("/SitePages/MeusSistemas.aspx");
                        }
                    }
                }
            }
        }
예제 #22
0
        public static int Ensure_RecordExist(Microsoft.SharePoint.SPWeb web, int klientId, int targetYear)
        {
            int result = 0;

            SPList list = web.Lists.TryGetList(targetList);

            string key = Define_KEY(klientId, targetYear);

            SPListItem item = list.Items.Cast <SPListItem>()
                              .Where(i => BLL.Tools.Get_Text(i, "KEY").Equals(key))
                              .FirstOrDefault();

            if (item != null)
            {
                result = item.ID;
            }
            else
            {
                //create new record
                SPListItem newItem = list.AddItem();
                newItem["KEY"]                = key;
                newItem["selKlient"]          = klientId;
                newItem["colRokObrachunkowy"] = targetYear;

                newItem.SystemUpdate();

                result = newItem.ID;
            }

            return(result);
        }
예제 #23
0
        public bool SaveItems(List <T> entities, bool deleteDataFirst)
        {
            bool result = false;

            if (deleteDataFirst)
            {
                DeleteItems(entities.Select(x => x.ID).ToList());
            }

            SPSecurity.RunWithElevatedPrivileges(delegate
            {
                using (SPSite site = new SPSite(SiteUrl))
                {
                    using (SPWeb web = site.OpenWeb())
                    {
                        SPList list        = web.GetList($"{web.Url}{ListUrl}");
                        SPListItem newElem = list.AddItem();

                        string buildQuery = string.Empty;
                        for (int itemCount = 0; itemCount < entities.Count; itemCount++)
                        {
                            T entity         = entities[itemCount];
                            var batchContent = string.Empty;
                            string id        = "New";
                            // Add new all items
                            if (deleteDataFirst)
                            {
                                batchContent = MapToBatchItem(list.ID, entity, itemCount, newElem);
                            }
                            // Update or delete the items
                            else
                            {
                                if (entity.ID > 0)
                                {
                                    id = entity.ID.ToString();
                                }
                                // Set value for the other fields if new or update
                                if (entity.BatchCommand != BatchCmd.Delete)
                                {
                                    batchContent = MapToBatchItem(list.ID, entity, itemCount, newElem);
                                }
                            }
                            buildQuery += string.Format("<Method ID=\"{0}\">" +
                                                        "<SetList Scope=\"Request\">{1}</SetList>" +
                                                        "<SetVar Name=\"ID\">{2}</SetVar>" +
                                                        "<SetVar Name=\"Cmd\">{3}</SetVar>{4}" +
                                                        "</Method>", string.Format("ID{0}", itemCount), list.ID, id, entity.BatchCommand, batchContent);
                        }
                        var query = string.Format(StringConstant.BatchFormat, buildQuery);
                        web.AllowUnsafeUpdates = true;
                        var stringResult       = web.ProcessBatchData(query);
                        web.AllowUnsafeUpdates = false;
                    };
                }
            });

            result = true;

            return(result);
        }
예제 #24
0
        private void CreateMailRequest(Customer cust, SPItemEventProperties properties)
        {
            SPList     tList = properties.Web.Lists["Powiadomienia"];
            SPListItem item  = tList.AddItem();

            try
            {
                item["_Klient"]  = cust.Id;
                item["_Kontakt"] = cust.Email;
                item["_Temat"]   = ":: " + properties.ListItem.Title;
                item["Operator"] = properties.UserLoginName;
                if (properties.ListItem["Body"] != null)
                {
                    item["_Tre_x015b__x0107_"] = properties.ListItem["Body"].ToString();
                }
                item["_Typ_x0020_powiadomienia"] = @"E-Mail Grupowy";
                if (properties.ListItem["colPlanowanyTerminWysylki"] != null)
                {
                    item["Data_x0020_wysy_x0142_ki"] = properties.ListItem["colPlanowanyTerminWysylki"].ToString();
                }
                item["_OgloszenieId"] = properties.ListItemId;

                item.Update();
            }
            catch (Exception ex)
            {
                throw;
            }
        }
예제 #25
0
        public void FormEvents_Submit(object sender, SubmitEventArgs e)
        {
            FileSubmitConnection fc = (FileSubmitConnection)this.DataConnections["SharePoint Library Submit"];

            fc.Filename.SetStringValue("Message - " + DateTime.Now.ToString("yyyymmddhhmmss"));
            fc.Execute();

            e.CancelableArgs.Cancel = false;

            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                using (SPSite elevatedSite = new SPSite("http://pobalfba"))
                {
                    using (SPWeb elevatedWeb = elevatedSite.OpenWeb())
                    {
                        elevatedWeb.AllowUnsafeUpdates = true;

                        SPList logsList    = elevatedWeb.Lists.TryGetList("Logs");
                        SPListItem newItem = logsList.AddItem();
                        newItem["Title"]   = string.Format("User: {0}; Date/Time: {1}", elevatedWeb.CurrentUser.LoginName, DateTime.Now.ToLongDateString());
                        newItem.Update();

                        elevatedWeb.AllowUnsafeUpdates = true;
                    }
                }
            });
        }
예제 #26
0
        private static void WritePlan(string planList, string siteUrl, SPListItem rPlanListItem, int duringDays)
        {
            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                using (SPSite spSite = new SPSite(siteUrl)) //找到网站集
                {
                    using (SPWeb spWeb = spSite.OpenWeb())
                    {
                        if (planList != "")
                        {
                            SPList spList = spWeb.Lists.TryGetList(planList);
                            if (spList != null)
                            {
                                for (int i = 0; i < duringDays; i++)
                                {
                                    SPListItem item  = spList.AddItem();
                                    item["标题"]       = rPlanListItem["标题"];
                                    DateTime dtStart = (DateTime)rPlanListItem["计划开始"];
                                    item["计划开始"]     = DateTime.Now.AddDays(i).Date + dtStart.TimeOfDay;
                                    item["计划时长"]     = rPlanListItem["计划时长"];

                                    item["活动操作"] = rPlanListItem["操作"];
                                    item["创建者"]  = spWeb.EnsureUser(spWeb.CurrentUser.LoginName);
                                    item["修改者"]  = spWeb.CurrentUser;
                                    item.Update();
                                }
                            }
                        }
                    }
                }
            });
        }
예제 #27
0
        public void SaveOrUpdate(SPWeb spWeb, List <FreightDetails> items)
        {
            SPList spList = spWeb.GetList($"{spWeb.Url}{ListUrl}");

            spWeb.AllowUnsafeUpdates = true;
            foreach (var item in items)
            {
                SPListItem spListItem;
                if (item.ID > 0)
                {
                    spListItem = spList.GetItemById(item.ID);
                }
                else
                {
                    spListItem = spList.AddItem();
                }

                spListItem[StringConstant.FreightDetailsList.FreightManagementIDField] = item.FreightManagementID.LookupId;
                spListItem[StringConstant.FreightDetailsList.GoodsNameField]           = item.GoodsName;
                spListItem[StringConstant.FreightDetailsList.UnitField]        = item.Unit;
                spListItem[StringConstant.FreightDetailsList.QuantityField]    = item.Quantity;
                spListItem[StringConstant.FreightDetailsList.RemarksField]     = item.Remarks;
                spListItem[StringConstant.FreightDetailsList.ShippingInField]  = item.ShippingIn.HasValue == true ? item.ShippingIn : null;
                spListItem[StringConstant.FreightDetailsList.ShippingOutField] = item.ShippingOut.HasValue == true ? item.ShippingOut : null;
                spListItem[StringConstant.FreightDetailsList.CheckInByField]   = item.CheckInBy != null ? item.CheckInBy.LookupId : 0;
                spListItem[StringConstant.FreightDetailsList.CheckOutByField]  = item.CheckOutBy != null ? item.CheckOutBy.LookupId : 0;

                spListItem.Update();
            }
            spWeb.AllowUnsafeUpdates = false;
        }
예제 #28
0
        public static void AddGroupProxyItem(SPList groupProxyList, SPUser user)
        {
            SPListItem newOwner = groupProxyList.AddItem();

            newOwner.SetFieldAsSPUser(eCaseConstants.FieldGuids.GROUPPROXY_LIST_GROUPMEMBER, user);
            newOwner.Update();
        }
예제 #29
0
        public void LogAudit(string title, string message)
        {
            try
            {
                SPContext context = SPContext.GetContext(HttpContext.Current);
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    using (SPWeb web = new SPSite(context.Web.Url).OpenWeb())
                    {
                        int userId      = context.Web.CurrentUser.ID;
                        string userName = context.Web.CurrentUser.LoginName;
                        SPFieldUserValue authorFieldValue = new SPFieldUserValue(web, userId, userName);

                        web.AllowUnsafeUpdates = true;
                        // implementation details omitted
                        SPList list             = web.Lists["Audit-Log"];
                        SPField authorField     = list.Fields.GetFieldByInternalName("Author0");
                        SPListItem newItem      = list.AddItem();
                        newItem["Title"]        = title;
                        newItem["Log"]          = message;
                        newItem[authorField.Id] = authorFieldValue;
                        newItem["IP"]           = HttpContext.Current.Request.UserHostAddress;
                        newItem.Update();
                        web.AllowUnsafeUpdates = false;
                    }
                });
            }
            catch { }
        }
예제 #30
0
        const string targetList = "Procedury"; //"tabProcedury";

        public static bool AddNew(SPWeb web, string nazwaProcedury)
        {
            bool result = false;

            SPList list = web.Lists.TryGetList(targetList);

            //if (list!=null)
            //{
            SPListItem item = list.AddItem();

            item["Title"] = nazwaProcedury;

            try
            {
                item.SystemUpdate();
            }
            catch (Exception)
            { }
            finally
            {
                result = true;
            }
            //}

            return(result);
        }
 private static void AddOrderLine(SPList orderLineList, OrderLine line)
 {
     var orderLine = orderLineList.AddItem();
     orderLine["Title"] = line.Product;
     orderLine["Price"] = line.Price;
     orderLine["Quantity"] = line.Quantity;
     orderLine.Update();
 }
 private static void AddSalesOrderHeader(SalesOrder order, SPList salesOrderList)
 {
     var salesOrder = salesOrderList.AddItem();
     salesOrder["Title"] = order.Customer.Name + "_" + order.OrderDate.ToString("yyyy-MM-dd");
     salesOrder["OrderDate"] = order.OrderDate;
     salesOrder["Status"] = order.Status.ToString();
     salesOrder["Customer"] = order.Customer.CustomerId;
     salesOrder.Update();
 }
예제 #33
0
        public static int AddNew(SPList list, int klientId, int rok, string key)
        {
            Debug.WriteLine("BLL.tabStratyZLatUbieglych.AddNew: " + key);

            SPListItem nItem = list.AddItem();
            BLL.Tools.Set_Index(nItem, "selKlient", klientId);
            BLL.Tools.Set_Index(nItem, "colRokObrachunkowy", rok);
            BLL.Tools.Set_Text(nItem, "KEY", key);

            nItem.Update();

            Debug.Write("-dodany");

            return nItem.ID;
        }
예제 #34
0
        public void AddDefaultData(SPList list)
        {
            var defaultDataRows = listInstance.Descendants(ns + "Data").Descendants(ns + "Rows").Descendants(ns + "Row");

            foreach (var row in defaultDataRows)
            {
                var item = list.AddItem();
                var fields = row.Descendants(ns + "Field");

                foreach (var field in fields)
                {
                    var name = field.Attribute("Name").Value;
                    var value = field.Value;

                    var spField = list.Fields.GetFieldByInternalName(name);
                    item[name] = ConvertValueForFieldType(spField.Type, value);
                }

                item.Update();
            }
        }
예제 #35
0
 /// <summary>
 /// Writes messages of 255 characters or less
 /// </summary>
 /// <param name="message">The message.</param>
 /// <param name="list">The list.</param>
 private void WriteMessage(string message, SPList list)
 {
     message.RequireNotNullOrEmpty("message");
     list.RequireNotNull("list");
     message.Require(message.Length <= 255, "message");
     SPListItem item = list.AddItem();
     item["Title"] = message;
     item.Update();
 }
예제 #36
0
        public virtual void CreateNewListItem(SPList list, SPGENRepositoryDataItem dataItem, string parentFolderRelUrl, SPGENEntityFileOperationArguments fileOperationParams)
        {
            SPListItem listItem;

            if (string.IsNullOrEmpty(parentFolderRelUrl))
            {
                listItem = list.AddItem();
            }
            else
            {
                listItem = list.AddItem(GetSiteRelativeFolderUrl(list, parentFolderRelUrl), SPFileSystemObjectType.Invalid);
            }

            dataItem.ListItem = listItem;
        }
예제 #37
0
 private void AddNews(SPWeb adminWeb, SPList list, string catID, string catName, string rssLink, DataRow rss)
 {
     try
     {
         adminWeb.AllowUnsafeUpdates = true;
         var item = list.AddItem();
         item[FieldsName.NewsList.InternalName.Title] = rss["title"];
         item[FieldsName.NewsList.InternalName.NewsUrl] = rss["link"];
         item[FieldsName.NewsList.InternalName.NewsGroup] = catID;
         item[FieldsName.NewsList.InternalName.NewsGroupName] = catName;
         item[FieldsName.NewsList.InternalName.RSSLink] = rssLink;
         var desc = Convert.ToString(rss["description"]);
         var imgUrl = string.Empty;
         if (desc.Contains("<img"))
         {
             var str = desc.Split(new string[] { "<img" }, 2, StringSplitOptions.None)[1];
             desc = str.Split(new string[] { ">" }, 2, StringSplitOptions.None)[1];
             str = str.Split(new string[] { ">" }, 2, StringSplitOptions.None)[0];
             if (str.Contains("\""))
             {
                 imgUrl = str.Split('\"')[1];
             }
             else if (str.Contains("'"))
             {
                 imgUrl = str.Split('\'')[1];
             }
             else
             {
                 str = str.Split('=')[1];
                 var str1 = str.Split('.')[0];
                 var str2 = str.Split('.')[1];
                 str2 = str2.Replace("/", "").Replace(" ", "").Replace("\"", "").Replace("'", "");
                 imgUrl = str1 + "." + str2;
             }
         }
         item[FieldsName.NewsList.InternalName.Description] = desc.Replace("-amp;", "&").Replace("&amp;", "&").Replace("&lt;", "<").Replace("&gt;", ">").Replace("&quot;", "\"").Replace("&apos;", "'");
         if (!string.IsNullOrEmpty(imgUrl))
         {
             item[FieldsName.NewsList.InternalName.ImageThumb] = imgUrl;
             SPFieldUrlValue imgDsp = new SPFieldUrlValue();
             imgDsp.Description = item.Title;
             imgDsp.Url = imgUrl;
             item[FieldsName.NewsList.InternalName.ImageDsp] = imgDsp;
         }
         adminWeb.AllowUnsafeUpdates = true;
         item.Update();
     }
     catch (SPException ex)
     {
         Utilities.LogToULS(ex);
     }
 }
예제 #38
0
        private static void Create_New_GFR_K(Microsoft.SharePoint.SPListItem item, string mask, SPList list, SPListItem klientItem)
        {
            string ct = "Generowanie formatek rozliczeniowych dla klienta";
            int okresId = BLL.Tools.Get_LookupId(item, "selOkres");

            SPListItem newItem = list.AddItem();
            newItem["ContentType"] = ct;
            newItem["selKlient"] = klientItem.ID;
            newItem["selOkres"] = okresId;
            newItem["colMaskaSerwisu"] = mask;

            newItem.SystemUpdate();
        }
예제 #39
0
        private static int Create_KartaKontrolna(SPListItem task, string KEY, SPList list)
        {
            SPListItem newItem = list.AddItem();
            newItem["KEY"] = KEY;
            newItem["selKlient"] = Get_LookupId(task, "selKlient");
            newItem["selOkres"] = Get_LookupId(task, "selOkres");

            BLL.Models.Klient k = new Models.Klient(task.Web, Get_LookupId(task, "selKlient"));

            Set_KartaKontrolna_InitValues(newItem, k);

            //ustaw CT
            if (k.TypKlienta == "KSH") newItem["ContentType"] = "Karta kontrolna KSH";
            else newItem["ContentType"] = "Karta kontrolna KPiR";

            newItem.SystemUpdate();

            return newItem.ID;
        }
        }//end useCaseUpdateItems



        static void useCaseAddInitialItems(SPList catsList, SPList cascomList)
        {
            try
            {
               //Console.WriteLine("NEWTRADOCTaskers Item Count = 0");
                foreach(SPListItem catsListItem in catsList.Items)//iterate taskers items
                {
                    //Console.WriteLine("CATS Item " + catsListItem);
                        SPListItem addNEWTRADOCTaskersItem = cascomList.AddItem();//items to add to NEWTRADOCTaskers
                        foreach (SPField taskersField in catsList.Fields)//iterate taskers fields
                        {
                            string getFieldTypes = taskersField.GetType().ToString();//get taskers field types
                            string taskersInternalName = taskersField.InternalName;//get taskers internal names

                            if (getFieldTypes.Contains("SPFieldText") && taskersInternalName != "_CopySource" && taskersInternalName != "_UIVersionString") //add single lines of text
                            {
                                //Copy Source/_CopySource and _UIVersionString/Version pertains to local list settings and should not copy over                          

                                //Console.WriteLine("\tCATS Field Internal Name: " + taskersField.InternalName + "\n\tCATS Display Name: " + taskersField.Title + "\n\tValue: " + catsListItem[taskersInternalName]);
                                addNEWTRADOCTaskersItem[taskersInternalName] = catsListItem[taskersInternalName];
                                
                            }                         
                            else if (getFieldTypes.Contains("SPFieldMultiLineText"))//add miltiple lines of text fields
                            {
                                addNEWTRADOCTaskersItem[taskersInternalName] = catsListItem[taskersInternalName];                               
                                //Console.WriteLine("\t\t\tUpdating " + cascomField.Title);
                            }
                            else if (getFieldTypes.Contains("SPFieldChoice"))//add choice fields
                            {
                                addNEWTRADOCTaskersItem[taskersInternalName] = catsListItem[taskersInternalName];
                            }
                            else if (getFieldTypes.Contains("SPFieldBoolean") && taskersInternalName != "_HasCopyDestinations" && taskersInternalName != "_IsCurrentVersion")//add yes/no fields
                            {
                                    //_HasCopyDestinations/_IsCurrentVersion pertains to local list settings
                                    addNEWTRADOCTaskersItem[taskersInternalName] = catsListItem[taskersInternalName];
                            }
                            else if (getFieldTypes.Contains("SPFieldDateTime"))
                            {
                                addNEWTRADOCTaskersItem[taskersInternalName] = catsListItem[taskersInternalName];
                            }
                            else if (getFieldTypes.Contains("SPFieldUser"))
                            {
                                Console.WriteLine("\t" + getFieldTypes);
                                Console.WriteLine("\tCATS Field Internal Name: " + taskersField.InternalName + "\n\tCATS Display Name: " + taskersField.Title + "\n\tValue: " + catsListItem[taskersInternalName]);
                                addNEWTRADOCTaskersItem[taskersInternalName] = catsListItem[taskersInternalName];
                        }




                    }//end for
                    Console.WriteLine("\n Item Updated");
                    addNEWTRADOCTaskersItem.Update(); ;//update content database

                }//end for



            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Console.Read();
            }


        }//end useCaseAddItems
        private static void UpdateReportForMonth(SPList report, DateTime reportStart, SPListItemCollection monthlyCosts)
        {
            double monthlySum = 0;
            foreach (SPListItem cost in monthlyCosts)
            {
                monthlySum += (double)cost["Cost"];
            }

            string reportsQueryString = string.Format(
                "<Where>" +
                    "<Eq>" +
                        "<FieldRef Name='{0}'></FieldRef>" +
                        "<Value Type='DateTime'>{1}</Value>" +
                    "</Eq>" +
                "</Where>",
                DelegationsFields.MonthIndicator.Name,
                SPUtility.CreateISO8601DateTimeFromSystemDateTime(reportStart));

            SPQuery monthlyReportQuery = new SPQuery();
            monthlyReportQuery.Query = reportsQueryString;

            SPListItemCollection monthlyReports = report.GetItems(monthlyReportQuery);

            if (monthlyReports.Count > 0)
            {
                var item = report.GetItemById((int)(monthlyReports[0]["ID"]));
                item[DelegationsFields.MonthlyCost] = monthlySum;
                item.Update();
            }
            else
            {
                var item = report.AddItem();
                item[DelegationsFields.MonthIndicator] = reportStart;
                item[DelegationsFields.MonthlyCost] = monthlySum;
                item.Update();
            }
        }
예제 #42
0
        public void TestInit()
        {
            using (SPSite site = new SPSite("http://sp2013test"))
            {
                using (SPWeb web = site.OpenWeb(webUrl))
                {
                    TestList = web.Lists.TryGetList(this.listName);
                    if (TestList == null)
                    {
                        Guid listId = web.Lists.Add(this.listName, "Test list for SPQueryUtil querystring", SPListTemplateType.GenericList);
                        web.Update();
                        TestList = web.Lists[listId];
                        TestList.Fields.Add("TextCol", SPFieldType.Text, false);
                        TestList.Fields.Add("MultiTextCol", SPFieldType.Note, false);
                        TestList.Fields.Add("NumberCol", SPFieldType.Number, false);
                        TestList.Fields.Add("DateTimeCol", SPFieldType.DateTime, false);
                        TestList.Fields.Add("BoolCol", SPFieldType.Boolean, false);
                        TestList.Fields.Add("ChoiceCol", SPFieldType.Choice, false);
                        TestList.Fields.Add("MultiChoiceCol", SPFieldType.MultiChoice, false);
                        TestList.Fields.Add("GuidCol", SPFieldType.Guid, false);
                        TestList.Fields.Add("UrlCol", SPFieldType.URL, false);
                        TestList.Fields.Add("UserCol", SPFieldType.User, false);
                        TestList.Update();

                        SPListItem textItem = TestList.AddItem();
                        textItem["TextCol"] = "text1";
                        textItem.Update();
                        SPListItem textItemMulti = TestList.AddItem();
                        textItemMulti["MultiTextCol"] = "Multi text";
                        textItemMulti.Update();
                        SPListItem numberItem = TestList.AddItem();
                        numberItem["NumberCol"] = 100;
                        numberItem.Update();
                        SPListItem dateTimeCol = TestList.AddItem();
                        dateTimeCol["DateTimeCol"] = new DateTime(2000, 1, 1, 5, 10, 59);
                        dateTimeCol.Update();
                        SPListItem boolItem = TestList.AddItem();
                        boolItem["BoolCol"] = true;
                        boolItem.Update();
                        SPListItem choiceItem = TestList.AddItem();
                        choiceItem["ChoiceCol"] = "choice1";
                        choiceItem.Update();
                        var choicevalues = new SPFieldMultiChoiceValue();
                        choicevalues.Add("Green");
                        choicevalues.Add("Blue");
                        SPListItem chioceItemMulti = TestList.AddItem();
                        chioceItemMulti["MultiChoiceCol"] = choicevalues;
                        chioceItemMulti.Update();
                        SPListItem guidItem = TestList.AddItem();
                        guidItem["GuidCol"] = new Guid("96D74029-8482-4C52-8C4F-4A4040A77BC5");
                        guidItem.Update();
                        SPListItem urlItem = TestList.AddItem();
                        urlItem["UrlCol"] = "http://www.google.com";
                        urlItem.Update();
                        //SPListItem userItem = TestList.AddItem();
                        //textItemMulti["UserCol"] = "";
                        //userItem.Update();
                    }
                }

                using (SPWeb web = site.OpenWeb(this.webUrl))
                {
                    TestList = web.Lists[this.listName];
                }
            }
        }
예제 #43
0
        private object CreateNewBatch(string batchName, SPList list)
        {
            SPListItem item = list.AddItem();
            item["BatchName"] = batchName;
            item.Update();

            return item.ID;
        }
예제 #44
0
        private SPListItem EnsureListItem(SPList list, ListItemDefinition listItemModel)
        {
            // TODO, lazy to query
            // BIG TODO, don't tell me, I know that
            var currentItem = list.Items
                            .OfType<SPListItem>()
                            .FirstOrDefault(i => i.Title == listItemModel.Title);

            InvokeOnModelEvent(this, new ModelEventArgs
            {
                CurrentModelNode = null,
                Model = null,
                EventType = ModelEventType.OnProvisioning,
                Object = currentItem,
                ObjectType = typeof(SPListItem),
                ObjectDefinition = listItemModel,
                ModelHost = list
            });

            if (currentItem == null)
            {
                var newItem = list.AddItem();

                newItem["Title"] = listItemModel.Title;

                InvokeOnModelEvent(this, new ModelEventArgs
                {
                    CurrentModelNode = null,
                    Model = null,
                    EventType = ModelEventType.OnProvisioned,
                    Object = newItem,
                    ObjectType = typeof(SPListItem),
                    ObjectDefinition = listItemModel,
                    ModelHost = list
                });

                newItem.Update();

                return newItem;
            }
            else
            {
                currentItem["Title"] = listItemModel.Title;

                InvokeOnModelEvent(this, new ModelEventArgs
                {
                    CurrentModelNode = null,
                    Model = null,
                    EventType = ModelEventType.OnProvisioned,
                    Object = currentItem,
                    ObjectType = typeof(SPListItem),
                    ObjectDefinition = listItemModel,
                    ModelHost = list
                });

                currentItem.Update();

                return currentItem;
            }
        }
        }//end useCases()

        static void useCaseUpdateItems(SPList catsList, SPList cascomList, SPWeb webSite)
        {
            try
            {
                //we are going to add items for the first time in NEWTRADOC taskers here;we will break this into a seprate method to increase debugging simplicity
                if (cascomList.Items.Count == 0) { useCaseAddInitialItems(catsList, cascomList); }//add NEWTRADOC Taskers on initial push

                foreach (SPListItem catsListItem in catsList.Items)//iterate taskers items
                {
                    //Console.WriteLine("CATS Item " + catsListItem);
                    bool checkControlNumberExistsInCASCOM = false;
                    string taskersPrimaryKey = catsListItem.Fields.GetField("Title").ToString();
                    Object taskersControlNumber = catsListItem[taskersPrimaryKey];
                    //Console.WriteLine("CATS Control Number " + taskersControlNumber);

                    foreach (SPListItem cascomListItem in cascomList.Items)//iterate NEWTRADOCTaskers items
                    {
                        //Console.WriteLine("\tCASCOM Item " + cascomListItem);

                        string NEWTRADOCTaskersprimaryKey = cascomListItem.Fields.GetField("Title").ToString();
                        Object NEWTRADOCTaskersControlNumber = cascomListItem[NEWTRADOCTaskersprimaryKey];
                        //Console.WriteLine("\tCASCOM Control Number " + NEWTRADOCTaskersControlNumber);

                        if (Object.Equals(NEWTRADOCTaskersControlNumber, taskersControlNumber))//we are going to update the items here since they exist in NEWTRADOC taskers
                        {
                            DateTime d1 = new DateTime(1900, 05, 20);
                            checkControlNumberExistsInCASCOM = true;
                            //Console.WriteLine("\tCATS Control Number " + taskersControlNumber + "   CASCOM Control Number " + NEWTRADOCTaskersControlNumber + " : " + checkControlNumberExistsInCASCOM);
                            foreach (SPField taskersField in catsList.Fields)//iterate taskers fields
                            {
                                string getFieldTypes2 = taskersField.GetType().ToString();//get taskers field types
                                string taskersInternalName2 = taskersField.InternalName;//get taskers internal names

                                if (getFieldTypes2.Contains("SPFieldText") && taskersInternalName2 != "_CopySource" && taskersInternalName2 != "_UIVersionString" && taskersInternalName2 != "Title") //add single lines of text
                                {
                                    //Copy Source/_CopySource and _UIVersionString/Version pertains to local list settings and should not copy over                          
                                    //Console.WriteLine("\t\tCATS Field Internal Name: " + taskersField.InternalName + "\n\tCATS Display Name: " + taskersField.Title + "\n\tValue: " + catsListItem[taskersInternalName2]);
                                    cascomListItem[taskersInternalName2] = catsListItem[taskersInternalName2];
                                    
                                }
                                else if (getFieldTypes2.Contains("SPFieldMultiLineText"))//add miltiple lines of text fields
                                {
                                    //Console.WriteLine("\t\tCATS Field Internal Name: " + taskersField.InternalName + "\n\tCATS Display Name: " + taskersField.Title + "\n\tValue: " + catsListItem[taskersInternalName2]);
                                    cascomListItem[taskersInternalName2] = catsListItem[taskersInternalName2];
                                    
                                }
                                else if (getFieldTypes2.Contains("SPFieldChoice"))//add choice fields
                                {
                                    cascomListItem[taskersInternalName2] = catsListItem[taskersInternalName2];
                                }
                                else if (getFieldTypes2.Contains("SPFieldBoolean") && taskersInternalName2 != "_HasCopyDestinations" && taskersInternalName2 != "_IsCurrentVersion")//add yes/no fields
                                {
                                    //_HasCopyDestinations/_IsCurrentVersion pertains to local list settings
                                    cascomListItem[taskersInternalName2] = catsListItem[taskersInternalName2];

                                }
                                else if (getFieldTypes2.Contains("SPFieldDateTime"))
                                {
                                    cascomListItem[taskersInternalName2] = catsListItem[taskersInternalName2];
                                }
                                else if (getFieldTypes2.Contains("SPFieldUser"))
                                {
                                    Console.WriteLine("\t" + getFieldTypes2);
                                    Console.WriteLine("\tCATS Field Internal Name: " + taskersField.InternalName + "\n\tCATS Display Name: " + taskersField.Title + "\n\tValue: " + catsListItem[taskersInternalName2]);
                                    cascomListItem[taskersInternalName2] = catsListItem[taskersInternalName2];
                                }
                                else if (getFieldTypes2.Contains("SPFieldAttachments"))//add attachments
                                {
                                    //addNEWTRADOCTaskersItem.Update();//might need an update to for attachments to recognize item
                                    /*SPAttachmentCollection catsAttachments = catsListItem.Attachments; //set cats attachment collection
                                    SPAttachmentCollection cascomAttachments = cascomListItem.Attachments; //set cascom attachment collection
                                    int numberOfCatsAttachments = catsAttachments.Count;//get number of cats attachments
                                    int numberOfCASCOMAttachments = cascomAttachments.Count;//get number of cascom attachments

                                    if (numberOfCatsAttachments > 0)// if any attachments exists
                                    {
                                        if (numberOfCASCOMAttachments > 0)//delete and add current attachments to refresh
                                        {
                                            Console.WriteLine("\t\tDeleting CASCOM attachments.");
                                            Console.WriteLine("\t\tNumber of CASCOM Attachments " + numberOfCASCOMAttachments);
                                            for (int j = 0; j < catsAttachments.Count; j++)//cats attachments
                                            {
                                                string path = catsAttachments.UrlPrefix + catsAttachments[j];//specify relative url for file location
                                                SPFile catsFile = webSite.GetFile(path);//cats file object
                                                string catsFileName = catsFile.Name;//cats file name
                                                cascomAttachments.Delete(catsFileName);//delete attachments
                                                Console.WriteLine("\t\tDeleting Attachment: " + catsFileName);
                                                //Console.WriteLine("\tAdding Attachments: " + catsFileName);
                                            }//end for
                                        }//end if
                                        numberOfCASCOMAttachments = cascomAttachments.Count;
                                        if (numberOfCASCOMAttachments == 0)//add attachments
                                        {
                                            Console.WriteLine("\t\tAdding CASCOM attachments.");
                                            Console.WriteLine("\t\tNumber of CASCOMAttachments " + numberOfCASCOMAttachments);
                                            for (int j = 0; j < catsAttachments.Count; j++)//cats attachments
                                            {
                                                string path = catsAttachments.UrlPrefix + catsAttachments[j];//specify relative url for file location
                                                SPFile catsFile = webSite.GetFile(path);//cats file object
                                                string catsFileName = catsFile.Name;//cats file name
                                                Console.WriteLine("\t\tAdding Attachment: " + catsFileName);
                                                byte[] binFile = catsFile.OpenBinary();//open file in binary format
                                                cascomAttachments.Add(catsFileName, binFile);//add files to cascom item

                                            }//end for
                                        }//end if    
                                    }//end if*/
                                }//end if



                            }//end for taskers fields
                            Console.WriteLine("Updating Item.");
                            cascomListItem.Update();//update content database
                        }//end if
                       
                    }//end for //taskers items
                    if (checkControlNumberExistsInCASCOM == false)//we are going to add items here since they do not exist in NEWTRADOC taskers
                    {

                        //Console.WriteLine("CATS Control Number DO Not EXIST in CASCOM -> " + taskersControlNumber);
                        SPListItem addNEWTRADOCTaskersItem = cascomList.AddItem();//items to add to NEWTRADOCTaskers
                        foreach (SPField taskersField in catsList.Fields)//iterate taskers fields
                        {
                            string getFieldTypes = taskersField.GetType().ToString();//get taskers field types
                            string taskersInternalName = taskersField.InternalName;//get taskers internal names

                            if (getFieldTypes.Contains("SPFieldText") && taskersInternalName != "_CopySource" && taskersInternalName != "_UIVersionString") //add single lines of text
                            {
                                //Copy Source/_CopySource and _UIVersionString/Version pertains to local list settings and should not copy over                          

                                //Console.WriteLine("\tCATS Field Internal Name: " + taskersField.InternalName + "\n\tCATS Display Name: " + taskersField.Title + "\n\tValue: " + catsListItem[taskersInternalName]);
                                addNEWTRADOCTaskersItem[taskersInternalName] = catsListItem[taskersInternalName];
                                
                            }
                            else if (getFieldTypes.Contains("SPFieldMultiLineText"))//add miltiple lines of text fields
                            {
                                addNEWTRADOCTaskersItem[taskersInternalName] = catsListItem[taskersInternalName];
                               
                                //Console.WriteLine("\t\t\tUpdating " + cascomField.Title);
                            }
                            else if (getFieldTypes.Contains("SPFieldChoice"))//add choice fields
                            {
                                //Console.WriteLine("\t" + getFieldTypes);
                                addNEWTRADOCTaskersItem[taskersInternalName] = catsListItem[taskersInternalName];
                            }
                            else if (getFieldTypes.Contains("SPFieldBoolean") && taskersInternalName != "_HasCopyDestinations" && taskersInternalName != "_IsCurrentVersion")//add yes/no fields
                            {
                                //_HasCopyDestinations/_IsCurrentVersion pertains to local list settings
                                addNEWTRADOCTaskersItem[taskersInternalName] = catsListItem[taskersInternalName];
                            }
                            else if (getFieldTypes.Contains("SPFieldDateTime"))
                            {
                                addNEWTRADOCTaskersItem[taskersInternalName] = catsListItem[taskersInternalName];
                            }
                            else if (getFieldTypes.Contains("SPFieldUser"))
                            {
                                Console.WriteLine("\t" + getFieldTypes);
                                Console.WriteLine("\tCATS Field Internal Name: " + taskersField.InternalName + "\n\tCATS Display Name: " + taskersField.Title + "\n\tValue: " + catsListItem[taskersInternalName]);
                                addNEWTRADOCTaskersItem[taskersInternalName] = catsListItem[taskersInternalName];
                            }
                            else if (getFieldTypes.Contains("SPFieldAttachments"))//add attachments
                            {
                                //addNEWTRADOCTaskersItem.Update();//might need an update to for attachments to recognize item
                                /*SPAttachmentCollection catsAttachments = catsListItem.Attachments; //set cats attachment collection
                                SPAttachmentCollection cascomAttachments = cascomListItem.Attachments; //set cascom attachment collection
                                int numberOfCatsAttachments = catsAttachments.Count;//get number of cats attachments
                                int numberOfCASCOMAttachments = cascomAttachments.Count;//get number of cascom attachments

                                if (numberOfCatsAttachments > 0)// if any attachments exists
                                {
                                    if (numberOfCASCOMAttachments > 0)//delete and add current attachments to refresh
                                    {
                                        Console.WriteLine("\t\tDeleting CASCOM attachments.");
                                        Console.WriteLine("\t\tNumber of CASCOM Attachments " + numberOfCASCOMAttachments);
                                        for (int j = 0; j < catsAttachments.Count; j++)//cats attachments
                                        {
                                            string path = catsAttachments.UrlPrefix + catsAttachments[j];//specify relative url for file location
                                            SPFile catsFile = webSite.GetFile(path);//cats file object
                                            string catsFileName = catsFile.Name;//cats file name
                                            cascomAttachments.Delete(catsFileName);//delete attachments
                                            Console.WriteLine("\t\tDeleting Attachment: " + catsFileName);
                                            //Console.WriteLine("\tAdding Attachments: " + catsFileName);
                                        }//end for
                                    }//end if
                                    numberOfCASCOMAttachments = cascomAttachments.Count;
                                    if (numberOfCASCOMAttachments == 0)//add attachments
                                    {
                                        Console.WriteLine("\t\tAdding CASCOM attachments.");
                                        Console.WriteLine("\t\tNumber of CASCOMAttachments " + numberOfCASCOMAttachments);
                                        for (int j = 0; j < catsAttachments.Count; j++)//cats attachments
                                        {
                                            string path = catsAttachments.UrlPrefix + catsAttachments[j];//specify relative url for file location
                                            SPFile catsFile = webSite.GetFile(path);//cats file object
                                            string catsFileName = catsFile.Name;//cats file name
                                            Console.WriteLine("\t\tAdding Attachment: " + catsFileName);
                                            byte[] binFile = catsFile.OpenBinary();//open file in binary format
                                            cascomAttachments.Add(catsFileName, binFile);//add files to cascom item

                                        }//end for
                                    }//end if    
                                }//end if*/
                            }//end if
                        }//end for taskers fields
                        Console.WriteLine("Adding Item");
                        addNEWTRADOCTaskersItem.Update();//update content database
                    }//end if
                }//end for taskers items
                   
            }//end try

            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Console.Read();
            }
        }//end useCaseUpdateItems