public IHttpActionResult PostOnBoardingService(SubSiteOnBoardingDTO oDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var result = SubSiteConfigService.OnBoardingServiceSave(oDto);

            if (result == Guid.Empty)
            {
                return(NotFound());
            }
            return(Ok(result));
        }
示例#2
0
        /// <summary>
        /// This method is used to Save the main office details
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public Guid OnBoardingServiceSave(SubSiteOnBoardingDTO dto)
        {
            int entityState            = 0;
            SubSiteConfiguration model = new SubSiteConfiguration();

            if (dto != null)
            {
                Guid Id, refId;
                bool IsRefId = Guid.TryParse(dto.refId, out refId);
                if (!IsRefId)
                {
                    return(Guid.Empty);
                }

                if (Guid.TryParse(dto.Id, out Id))
                {
                    model = db.SubSiteConfigurations.Where(a => a.ID == Id).FirstOrDefault();
                    if (model.IsuTaxManageingEnrolling != null && model.IsuTaxCustomerSupport != null)
                    {
                        Guid SiteMapId; int EntityType = 0;
                        if (Guid.TryParse("68882c05-5914-4fdb-b284-e33d6c029f5a", out SiteMapId))
                        {
                            CustomerConfigurationStatu ConfigStatusModel = new CustomerConfigurationStatu();
                            ConfigStatusModel = db.CustomerConfigurationStatus.Where(o => o.CustomerId == refId && o.SitemapId == SiteMapId).FirstOrDefault();
                            if (ConfigStatusModel == null)
                            {
                                ConfigStatusModel    = new CustomerConfigurationStatu();
                                ConfigStatusModel.Id = Guid.NewGuid();
                            }
                            else
                            {
                                EntityType = (int)System.Data.Entity.EntityState.Modified;
                            }

                            ConfigStatusModel.CustomerId  = refId;
                            ConfigStatusModel.SitemapId   = SiteMapId;
                            ConfigStatusModel.StatusCode  = "done";
                            ConfigStatusModel.UpdatedBy   = dto.UserId ?? Guid.Empty;
                            ConfigStatusModel.UpdatedDate = DateTime.Now;

                            if (EntityType == (int)System.Data.Entity.EntityState.Modified)
                            {
                                db.Entry(ConfigStatusModel).State = System.Data.Entity.EntityState.Modified;
                            }
                            else
                            {
                                db.CustomerConfigurationStatus.Add(ConfigStatusModel);
                            }
                        }
                    }

                    if (model != null)
                    {
                        entityState = (int)System.Data.Entity.EntityState.Modified;
                    }
                    else
                    {
                        return(Guid.Empty);
                    }
                }
                else
                {
                    model.ID    = Guid.NewGuid();
                    entityState = (int)System.Data.Entity.EntityState.Added;
                }
                model.emp_CustomerInformation_ID = refId; // newguid;
                if (dto.IsuTaxManageOnboarding != null)
                {
                    model.IsuTaxManageOnboarding = dto.IsuTaxManageOnboarding.Value;
                }
                model.StatusCode      = EMPConstants.Active;
                model.LastUpdatedBy   = dto.UserId ?? Guid.Empty;
                model.LastUpdatedDate = System.DateTime.Now;
                if (entityState == (int)System.Data.Entity.EntityState.Added)
                {
                    model.CreatedBy   = dto.UserId ?? Guid.Empty;
                    model.CreatedDate = System.DateTime.Now;
                    db.SubSiteConfigurations.Add(model);
                }
                else
                {
                    db.Entry(model).State = System.Data.Entity.EntityState.Modified;
                }


                var custinfo = (from s in db.emp_CustomerInformation
                                join sy in db.SalesYearMasters on s.SalesYearID equals sy.Id
                                where s.Id == refId
                                select new
                {
                    s.IsMSOUser,
                    s.SalesforceAccountID,
                    sy.SalesYear
                }).FirstOrDefault();

                CustomerInformation.CustomerInformationService objCIS = new CustomerInformation.CustomerInformationService();
                string desc   = (custinfo.IsMSOUser ?? false) ? "Automated MSO " + custinfo.SalesYear ?? 0 + " Onboarding Case " : "Automated Desktop " + custinfo.SalesYear ?? 0 + " Onboarding Case";
                var    caseId = objCIS.SaveCSRCase(custinfo.SalesforceAccountID, (custinfo.SalesYear ?? 0).ToString(), dto.IsuTaxManageOnboarding ?? false, desc);

                var cinfo = db.emp_CustomerInformation.Where(x => x.Id == refId).FirstOrDefault();
                cinfo.OnBoardPrimaryKey = caseId;
            }
            try
            {
                db.SaveChanges();
                db.Dispose();
                return(model.ID);
            }
            catch (Exception ex)
            {
                EMPPortal.Core.Utilities.ExceptionLogger.LogException(ex.ToString(), "SubSiteConfigService/OnBoardingServiceSave", Guid.Empty);
                return(Guid.Empty);

                throw;
            }
        }