Exemplo n.º 1
0
        public IHttpActionResult PostSupportService(SubSiteSupportDTO oDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var result = SubSiteConfigService.SupportServiceSave(oDto);

            if (result == Guid.Empty)
            {
                return(NotFound());
            }
            return(Ok(result));
        }
Exemplo n.º 2
0
        /// <summary>
        /// This method is used to Save the main office details
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public Guid SupportServiceSave(SubSiteSupportDTO 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.IsuTaxManageOnboarding != 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.IsuTaxCustomerSupport != null)
                {
                    model.IsuTaxCustomerSupport = dto.IsuTaxCustomerSupport.Value;
                }
                if (dto.NoofSupportStaff != null)
                {
                    model.NoofSupportStaff = dto.NoofSupportStaff.Value;
                }

                if (!string.IsNullOrEmpty(dto.NoofDays))
                {
                    model.NoofDays = dto.NoofDays;
                }

                if (dto.OpenHours != null)
                {
                    DateTime dt;
                    bool     res = DateTime.TryParse(dto.OpenHours, out dt);
                    if (!res)
                    {
                        return(Guid.Empty);
                    }
                    model.OpenHours = dt.TimeOfDay;
                }

                if (dto.CloseHours != null)
                {
                    DateTime dt;
                    bool     res = DateTime.TryParse(dto.CloseHours, out dt);

                    if (!res)
                    {
                        return(Guid.Empty);
                    }
                    model.CloseHours = dt.TimeOfDay;
                }

                if (!string.IsNullOrEmpty(dto.TimeZone))
                {
                    model.TimeZone = dto.TimeZone;
                }

                if (dto.IsAutoEnrollAffiliateProgram != null)
                {
                    model.IsAutoEnrollAffiliateProgram = dto.IsAutoEnrollAffiliateProgram.Value;
                }

                if (dto.SubSiteTaxReturn != null)
                {
                    model.SubSiteTaxReturn = dto.SubSiteTaxReturn.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 Affiliate = db.SubSiteAffiliateProgramConfigs.Where(o => o.SubSiteConfiguration_ID == model.ID).ToList();

                    if (Affiliate.ToList().Count > 0)
                    {
                        db.SubSiteAffiliateProgramConfigs.RemoveRange(Affiliate);
                    }
                }
                SaveSubOfficeDetails(refId, dto.SubSiteTaxReturn.Value);
                List <SubSiteAffiliateProgramConfig> SubSiteAffiliatePrograms = new List <SubSiteAffiliateProgramConfig>();

                foreach (var item in dto.Affiliates)
                {
                    SubSiteAffiliateProgramConfig SubSiteAffiliateProgram = new SubSiteAffiliateProgramConfig();
                    SubSiteAffiliateProgram.ID = Guid.NewGuid();
                    SubSiteAffiliateProgram.emp_CustomerInformation_ID = model.emp_CustomerInformation_ID;
                    SubSiteAffiliateProgram.AffiliateProgramMaster_ID  = item.AffiliateProgramId;
                    SubSiteAffiliateProgram.SubSiteConfiguration_ID    = model.ID;

                    SubSiteAffiliateProgram.CreatedBy       = dto.UserId ?? Guid.Empty;
                    SubSiteAffiliateProgram.CreatedDate     = DateTime.Now;
                    SubSiteAffiliateProgram.LastUpdatedBy   = dto.UserId ?? Guid.Empty;
                    SubSiteAffiliateProgram.LastUpdatedDate = DateTime.Now;

                    SubSiteAffiliatePrograms.Add(SubSiteAffiliateProgram);
                }

                if (dto.Affiliates.ToList().Count > 0)
                {
                    db.SubSiteAffiliateProgramConfigs.AddRange(SubSiteAffiliatePrograms);
                }
            }
            try
            {
                db.SaveChanges();
                db.Dispose();
                return(model.ID);
            }
            catch (Exception ex)
            {
                EMPPortal.Core.Utilities.ExceptionLogger.LogException(ex.ToString(), "SubSiteConfigService/SupportServiceSave", Guid.Empty);
                return(Guid.Empty);

                throw;
            }
        }