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); } }
/// <summary> /// Saves the by section. /// </summary> /// <param name="sections">The sections.</param> /// <param name="objDict">The object dictionary.</param> /// <returns>return status</returns> public ActionStatus SaveBySection(ISection sectionDetails, Dictionary <string, string> objDict) { ActionStatus status = new ActionStatus(); BELDataAccessLayer helper = new BELDataAccessLayer(); if (sectionDetails != null && objDict != null) { objDict[Parameter.ACTIVITYLOG] = DCRDCNListNames.DCNACTIVITYLOG; objDict[Parameter.APPLICATIONNAME] = ApplicationNameConstants.DCRAPP; objDict[Parameter.FROMNAME] = FormNameConstants.DCNFORM; DesignEngineerSection section = null; if (sectionDetails.SectionName == DCNSectionName.DESIGNENGINEERSECTION) { if (sectionDetails.ListDetails != null && sectionDetails.ListDetails.Count != 0 && sectionDetails.ListDetails[0].ItemId == 0) { section = sectionDetails as DesignEngineerSection; if (ISDCNGenerataed(section.DCRNo)) { status.IsSucceed = false; status.Messages.Add("Text_IsDCNGenerated"); return(status); } } } List <ListItemDetail> objSaveDetails = helper.SaveData(this.context, this.web, sectionDetails, objDict); ListItemDetail itemDetails = objSaveDetails.Where(p => p.ListName.Equals(DCRDCNListNames.DCNLIST)).FirstOrDefault <ListItemDetail>(); if (sectionDetails.SectionName == DCNSectionName.DESIGNENGINEERSECTION) { if (sectionDetails.ListDetails != null && sectionDetails.ListDetails.Count != 0 && sectionDetails.ListDetails[0].ItemId == 0) { //var sectiondcn = sectionDetails as DesignDocumentEngineerSection; Dictionary <string, dynamic> values = new Dictionary <string, dynamic>(); values.Add("DCNNo", section.DCNNo); values.Add("IsDCNGenerated", "1"); BELDataAccessLayer.Instance.SaveFormFields(this.context, this.web, DCRDCNListNames.DCRLIST, section.DCRID, values); status.ExtraData = section.DCNNo; } } if (itemDetails.ItemId > 0) { status.ItemID = itemDetails.ItemId; status.IsSucceed = true; 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.Complete: status.Messages.Add("Text_CompleteSuccess"); break; case ButtonActionStatus.SendBack: status.Messages.Add("Text_SendBackSuccess"); break; default: status.Messages.Add(ApplicationConstants.SUCCESSMESSAGE); break; } } else { status.IsSucceed = false; status.Messages.Add(ApplicationConstants.ERRORMESSAGE); } } return(status); }