示例#1
0
        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);
            }
        }
示例#2
0
        /// <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);
        }