Пример #1
0
        /// <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);
                }
            }
        }
Пример #2
0
        /// <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);
            }
        }
Пример #3
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);
            }
        }