/// <summary> /// Update DCR No Count /// </summary> /// <param name="currentValue">Current Value</param> public void UpdateDCRNoCount(DCRNoCount currentValue) { if (currentValue != null && currentValue.ID != 0) { try { Logger.Info("Aync update DCR Current value currentValue : " + currentValue.CurrentValue + " BusinessUnit : " + currentValue.BusinessUnit); List spList = this.web.Lists.GetByTitle(DCRDCNListNames.DCRNOCOUNT); ListItem item = spList.GetItemById(currentValue.ID); item.RefreshLoad(); // Pooja Atkotiya - Added for Version Conflict! context.Load(item); context.ExecuteQuery(); item["CurrentValue"] = currentValue.CurrentValue; item["Year"] = currentValue.Year; item.Update(); //Version conflict error item.RefreshLoad(); // Pooja Atkotiya - Added for Version Conflict! context.Load(item); context.ExecuteQuery(); } catch (Exception ex) { Logger.Error("Error while Update DCR no Current Value"); Logger.Error(ex); } } }
/// <summary> /// Get DCR No Logic /// </summary> /// <param name="businessunit">Business Unit</param> /// <returns>DCR No Count</returns> public DCRNoCount GetDCRNo(string businessunit) { try { List <DCRNoCount> lstdcrCount = new List <DCRNoCount>(); ////List<DCRNoCount> lstdcrCount = GlobalCachingProvider.Instance.GetItem(DCRDCNListNames.DCRNOCOUNT, false) as List<DCRNoCount>; ////if (lstdcrCount == null || lstdcrCount.FirstOrDefault(p => businessunit.Contains(p.BusinessUnit) && p.Year == DateTime.Today.Year) == null) ////{ List spList = this.web.Lists.GetByTitle(DCRDCNListNames.DCRNOCOUNT); CamlQuery query = new CamlQuery(); query.ViewXml = @"<View><ViewFields><FieldRef Name='Title' /><FieldRef Name='Year' /><FieldRef Name='CurrentValue' /></ViewFields> </View>"; ListItemCollection items = spList.GetItems(query); this.context.Load(items); this.context.ExecuteQuery(); if (items != null && items.Count != 0) { foreach (ListItem item in items) { DCRNoCount obj = new DCRNoCount(); obj.ID = item.Id; obj.BusinessUnit = Convert.ToString(item["Title"]); obj.Year = Convert.ToInt32(item["Year"]); obj.CurrentValue = Convert.ToInt32(item["CurrentValue"]); if (obj.Year != DateTime.Today.Year) { obj.Year = DateTime.Today.Year; obj.CurrentValue = 0; } lstdcrCount.Add(obj); } } if (lstdcrCount != null) { return(lstdcrCount.FirstOrDefault(p => businessunit.Contains(p.BusinessUnit) && p.Year == DateTime.Today.Year)); } return(null); } catch (Exception ex) { Logger.Error(ex); return(null); } }
public ActionStatus SaveBySection(ISection sectionDetails, Dictionary <string, string> objDict) { lock (Padlock) { ActionStatus status = new ActionStatus(); DCRNoCount currentDCRNo = null; //BELDataAccessLayer helper = new BELDataAccessLayer(); if (sectionDetails != null && objDict != null) { objDict[Parameter.ACTIVITYLOG] = DCRDCNListNames.DCRACTIVITYLOG; objDict[Parameter.APPLICATIONNAME] = ApplicationNameConstants.DCRAPP; objDict[Parameter.FROMNAME] = FormNameConstants.DCRFORM; DCRDetailSection section = null; DesignEngineerSection designEngSection = null; if (sectionDetails.SectionName == DCRSectionName.DCRDETAILSECTION) { section = sectionDetails as DCRDetailSection; if (string.IsNullOrEmpty(section.DCRNo) && sectionDetails.ActionStatus == ButtonActionStatus.SaveAsDraft) { section.Title = section.DCRNo = "View"; } else if (sectionDetails.ActionStatus == ButtonActionStatus.NextApproval && (string.IsNullOrEmpty(section.DCRNo) || section.DCRNo == "View")) { ////section = sectionDetails as DCRDetailSection; currentDCRNo = GetDCRNo(section.BusinessUnit); section.RequestDate = DateTime.Now; if (currentDCRNo != null) { currentDCRNo.CurrentValue = currentDCRNo.CurrentValue + 1; Logger.Info("DCR Current Value + 1 = " + currentDCRNo.CurrentValue); section.DCRNo = string.Format("DCR-{0}-{1}-{2}", currentDCRNo.BusinessUnit, DateTime.Today.Year, string.Format("{0:0000}", currentDCRNo.CurrentValue)); section.Title = section.DCRNo; Logger.Info("DCR No is " + section.DCRNo); status.ExtraData = section.DCRNo; } } } if (sectionDetails.SectionName == DCRSectionName.DESIGNENGINEERSECTION && sectionDetails.ActionStatus == ButtonActionStatus.NextApproval) { designEngSection = sectionDetails as DesignEngineerSection; if (designEngSection != null) { designEngSection.FinalDesignEngineer = objDict[Parameter.USEREID]; } } List <ListItemDetail> objSaveDetails = BELDataAccessLayer.Instance.SaveData(this.context, this.web, sectionDetails, objDict); ListItemDetail itemDetails = objSaveDetails.Where(p => p.ListName.Equals(DCRDCNListNames.DCRLIST)).FirstOrDefault <ListItemDetail>(); if (sectionDetails.SectionName == DCRSectionName.DCRDETAILSECTION) { if (section != null && !string.IsNullOrEmpty(section.OldDCRNo)) { Dictionary <string, dynamic> values = new Dictionary <string, dynamic>(); values.Add("IsDCRRetrieved", true); BELDataAccessLayer.Instance.SaveFormFields(this.context, this.web, DCRDCNListNames.DCRLIST, section.OldDCRId, values); } if (itemDetails.ItemId > 0 && currentDCRNo != null) { //// AsyncHelper.Call(obj => //// { UpdateDCRNoCount(currentDCRNo); Logger.Info("Update DCR No " + section.DCRNo); //// }); } } if (sectionDetails.SectionName == DCRSectionName.DESIGNENGINEERSECTION && sectionDetails.ActionStatus == ButtonActionStatus.NextApproval) { if (designEngSection != null && designEngSection.DateForCompletionOfTesting != null && designEngSection.DateForReceiptOfSamples != null) { EmailHelper eHelper = new EmailHelper(); Dictionary <string, string> mailCustomValues = null; List <FileDetails> emailAttachments = null; Dictionary <string, string> email = new Dictionary <string, string>(); List <ListItemDetail> itemdetail = new List <ListItemDetail>(); string applicationName = ApplicationNameConstants.DCRAPP; string formName = FormNameConstants.DCRFORM; string from = string.Empty, to = string.Empty, cc = string.Empty, role = string.Empty, tmplName = string.Empty; from = objDict[Parameter.USEREID]; from = BELDataAccessLayer.GetEmailUsingUserID(context, web, from); to = designEngSection.ProposedBy; to = BELDataAccessLayer.GetEmailUsingUserID(context, web, to); cc = from; role = DCRRoles.DESIGNENGINEER; tmplName = EmailTemplateName.DESIGNENGGTOCREATOR; itemdetail.Add(new ListItemDetail() { ItemId = itemDetails.ItemId, IsMainList = true, ListName = DCRDCNListNames.DCRLIST }); if (mailCustomValues == null) { mailCustomValues = new Dictionary <string, string>(); } mailCustomValues[Parameter.CURRENTAPPROVERNAME] = BELDataAccessLayer.GetNameUsingUserID(context, web, objDict[Parameter.USEREID]); email = eHelper.GetEmailBody(context, web, tmplName, itemdetail, mailCustomValues, role, applicationName, formName); eHelper.SendMail(applicationName, formName, tmplName, email["Subject"], email["Body"], from, to, cc, false, emailAttachments); } } if (itemDetails.ItemId > 0) { status.IsSucceed = true; status.ItemID = itemDetails.ItemId; switch (sectionDetails.ActionStatus) { case ButtonActionStatus.SaveAsDraft: status.Messages.Add("Text_SaveDraftSuccess"); break; case ButtonActionStatus.SaveAndNoStatusUpdate: status.Messages.Add("Text_SaveSuccess"); break; case ButtonActionStatus.NextApproval: status.Messages.Add(ApplicationConstants.SUCCESSMESSAGE); break; case ButtonActionStatus.Delegate: status.Messages.Add("Text_DelegatedSuccess"); break; case ButtonActionStatus.Complete: status.Messages.Add("Text_CompleteSuccess"); break; case ButtonActionStatus.Rejected: status.Messages.Add("Text_RejectedSuccess"); break; default: status.Messages.Add(ApplicationConstants.SUCCESSMESSAGE); break; } } else { status.IsSucceed = false; status.Messages.Add(ApplicationConstants.ERRORMESSAGE); } } return(status); } }