public override object DeletePreferredCompany(int preferredCompanyId, int currentCompanyId) { try { BO.GBEnums.CompanyType prferredCompanyType = _context.Companies.Where(p => p.id == preferredCompanyId && (p.IsDeleted.HasValue == false || (p.IsDeleted.HasValue == true && p.IsDeleted.Value == false))) .Select(p1 => (BO.GBEnums.CompanyType)p1.CompanyType) .FirstOrDefault(); BO.GBEnums.CompanyType currentCompanyType = _context.Companies.Where(p => p.id == currentCompanyId && (p.IsDeleted.HasValue == false || (p.IsDeleted.HasValue == true && p.IsDeleted.Value == false))) .Select(p1 => (BO.GBEnums.CompanyType)p1.CompanyType) .FirstOrDefault(); using (var dbContextTransaction = _context.Database.BeginTransaction()) { if (prferredCompanyType == BO.GBEnums.CompanyType.MedicalProvider) { PreferredMedicalProvider PreferredMedicalProviderDB = null; PreferredMedicalProviderDB = _context.PreferredMedicalProviders.Where(p => p.PrefMedProviderId == preferredCompanyId && p.CompanyId == currentCompanyId && (p.IsDeleted.HasValue == false || (p.IsDeleted.HasValue == true && p.IsDeleted.Value == false)) ).FirstOrDefault(); if (PreferredMedicalProviderDB != null) { PreferredMedicalProviderDB.IsDeleted = true; PreferredMedicalProviderDB.UpdateDate = DateTime.UtcNow; PreferredMedicalProviderDB.UpdateByUserID = System.Convert.ToInt32(Utility.GetConfigValue("DefaultAdminUserID")); _context.SaveChanges(); } else { return(new BO.ErrorObject { ErrorMessage = "This Medical provider is not associated with this company.", errorObject = "", ErrorLevel = ErrorLevel.Error }); } } else if (prferredCompanyType == BO.GBEnums.CompanyType.Attorney) { PreferredAttorneyProvider PreferredAttorneyProviderDB = null; PreferredAttorneyProviderDB = _context.PreferredAttorneyProviders.Where(p => p.PrefAttorneyProviderId == preferredCompanyId && p.CompanyId == currentCompanyId && (p.IsDeleted.HasValue == false || (p.IsDeleted.HasValue == true && p.IsDeleted.Value == false)) ).FirstOrDefault(); if (PreferredAttorneyProviderDB != null) { PreferredAttorneyProviderDB.IsDeleted = true; PreferredAttorneyProviderDB.UpdateDate = DateTime.UtcNow; PreferredAttorneyProviderDB.UpdateByUserID = System.Convert.ToInt32(Utility.GetConfigValue("DefaultAdminUserID")); _context.SaveChanges(); } else { return(new BO.ErrorObject { ErrorMessage = "This Attorney provider is not associated with this company.", errorObject = "", ErrorLevel = ErrorLevel.Error }); } } else if (prferredCompanyType == BO.GBEnums.CompanyType.Ancillary) { PreferredAncillaryProvider PreferredAncillaryProviderDB = null; PreferredAncillaryProviderDB = _context.PreferredAncillaryProviders.Where(p => p.PrefAncillaryProviderId == preferredCompanyId && p.CompanyId == currentCompanyId && (p.IsDeleted.HasValue == false || (p.IsDeleted.HasValue == true && p.IsDeleted.Value == false)) ).FirstOrDefault(); if (PreferredAncillaryProviderDB != null) { PreferredAncillaryProviderDB.IsDeleted = true; PreferredAncillaryProviderDB.UpdateDate = DateTime.UtcNow; PreferredAncillaryProviderDB.UpdateByUserID = System.Convert.ToInt32(Utility.GetConfigValue("DefaultAdminUserID")); _context.SaveChanges(); } else { return(new BO.ErrorObject { ErrorMessage = "This Ancillary provider is not associated with this company.", errorObject = "", ErrorLevel = ErrorLevel.Error }); } } if (currentCompanyType == BO.GBEnums.CompanyType.MedicalProvider) { PreferredMedicalProvider PreferredMedicalProviderDB = null; PreferredMedicalProviderDB = _context.PreferredMedicalProviders.Where(p => p.PrefMedProviderId == currentCompanyId && p.CompanyId == preferredCompanyId && (p.IsDeleted.HasValue == false || (p.IsDeleted.HasValue == true && p.IsDeleted.Value == false)) ).FirstOrDefault(); if (PreferredMedicalProviderDB != null) { PreferredMedicalProviderDB.IsDeleted = true; PreferredMedicalProviderDB.UpdateDate = DateTime.UtcNow; PreferredMedicalProviderDB.UpdateByUserID = System.Convert.ToInt32(Utility.GetConfigValue("DefaultAdminUserID")); _context.SaveChanges(); } else { return(new BO.ErrorObject { ErrorMessage = "This Medical provider is not associated with this company.", errorObject = "", ErrorLevel = ErrorLevel.Error }); } } else if (currentCompanyType == BO.GBEnums.CompanyType.Attorney) { PreferredAttorneyProvider PreferredAttorneyProviderDB = null; PreferredAttorneyProviderDB = _context.PreferredAttorneyProviders.Where(p => p.PrefAttorneyProviderId == currentCompanyId && p.CompanyId == preferredCompanyId && (p.IsDeleted.HasValue == false || (p.IsDeleted.HasValue == true && p.IsDeleted.Value == false)) ).FirstOrDefault(); if (PreferredAttorneyProviderDB != null) { PreferredAttorneyProviderDB.IsDeleted = true; PreferredAttorneyProviderDB.UpdateDate = DateTime.UtcNow; PreferredAttorneyProviderDB.UpdateByUserID = System.Convert.ToInt32(Utility.GetConfigValue("DefaultAdminUserID")); _context.SaveChanges(); } else { return(new BO.ErrorObject { ErrorMessage = "This Attorney provider is not associated with this company.", errorObject = "", ErrorLevel = ErrorLevel.Error }); } } else if (currentCompanyType == BO.GBEnums.CompanyType.Ancillary) { PreferredAncillaryProvider PreferredAncillaryProviderDB = null; PreferredAncillaryProviderDB = _context.PreferredAncillaryProviders.Where(p => p.PrefAncillaryProviderId == currentCompanyId && p.CompanyId == preferredCompanyId && (p.IsDeleted.HasValue == false || (p.IsDeleted.HasValue == true && p.IsDeleted.Value == false)) ).FirstOrDefault(); if (PreferredAncillaryProviderDB != null) { PreferredAncillaryProviderDB.IsDeleted = true; PreferredAncillaryProviderDB.UpdateDate = DateTime.UtcNow; PreferredAncillaryProviderDB.UpdateByUserID = System.Convert.ToInt32(Utility.GetConfigValue("DefaultAdminUserID")); _context.SaveChanges(); } else { return(new BO.ErrorObject { ErrorMessage = "This Ancillary provider is not associated with this company.", errorObject = "", ErrorLevel = ErrorLevel.Error }); } } dbContextTransaction.Commit(); return(true); } } catch (Exception ex) { return(new BO.ErrorObject { ErrorMessage = "Error occured while associating company.", errorObject = "", ErrorLevel = ErrorLevel.Error }); } }
public override object AssociatePreferredCompany(string otp, int currentCompanyId) { try { BO.OTPCompanyMapping OTPCompanyMapping = (BO.OTPCompanyMapping)ValidateOTPForCompany(otp); if (OTPCompanyMapping == null) { return(new BO.ErrorObject { ErrorMessage = "Invalid OTP.", errorObject = "", ErrorLevel = ErrorLevel.Error }); } else { BO.GBEnums.CompanyType companyType = OTPCompanyMapping.Company.CompanyType; BO.GBEnums.CompanyType currentCompanyType = _context.Companies.Where(p => p.id == currentCompanyId && (p.IsDeleted.HasValue == false || (p.IsDeleted.HasValue == true && p.IsDeleted.Value == false))) .Select(p1 => (BO.GBEnums.CompanyType)p1.CompanyType) .FirstOrDefault(); using (var dbContextTransaction = _context.Database.BeginTransaction()) { if (companyType == BO.GBEnums.CompanyType.MedicalProvider) { using (PreferredMedicalProviderRepository cmp = new PreferredMedicalProviderRepository(_context)) { cmp.AssociateMedicalProviderWithCompany(OTPCompanyMapping.CompanyId, currentCompanyId); } } else if (companyType == BO.GBEnums.CompanyType.Attorney) { using (PreferredAttorneyProviderRepository cmp = new PreferredAttorneyProviderRepository(_context)) { cmp.AssociatePrefAttorneyProviderWithCompany(OTPCompanyMapping.CompanyId, currentCompanyId); } } else if (companyType == BO.GBEnums.CompanyType.Ancillary) { using (PreferredAncillaryProviderRepository cmp = new PreferredAncillaryProviderRepository(_context)) { cmp.AssociateAncillaryProviderWithCompany(OTPCompanyMapping.CompanyId, currentCompanyId); } } if (currentCompanyType == BO.GBEnums.CompanyType.MedicalProvider) { using (PreferredMedicalProviderRepository cmp = new PreferredMedicalProviderRepository(_context)) { cmp.AssociateMedicalProviderWithCompany(currentCompanyId, OTPCompanyMapping.CompanyId); } } else if (currentCompanyType == BO.GBEnums.CompanyType.Attorney) { using (PreferredAttorneyProviderRepository cmp = new PreferredAttorneyProviderRepository(_context)) { cmp.AssociatePrefAttorneyProviderWithCompany(currentCompanyId, OTPCompanyMapping.CompanyId); } } else if (currentCompanyType == BO.GBEnums.CompanyType.Ancillary) { using (PreferredAncillaryProviderRepository cmp = new PreferredAncillaryProviderRepository(_context)) { cmp.AssociateAncillaryProviderWithCompany(currentCompanyId, OTPCompanyMapping.CompanyId); } } var OTPCompanyMappingDB = _context.OTPCompanyMappings.Include("Company") .Where(p => p.OTP == otp && p.UsedByCompanyId == null && p.ValidUntil >= DateTime.UtcNow && (p.IsCancelled.HasValue == false || (p.IsCancelled.HasValue == true && p.IsCancelled.Value == false)) && (p.IsDeleted.HasValue == false || (p.IsDeleted.HasValue == true && p.IsDeleted.Value == false))) .FirstOrDefault(); if (OTPCompanyMappingDB != null) { OTPCompanyMappingDB.UsedByCompanyId = currentCompanyId; OTPCompanyMappingDB.UsedAtDate = DateTime.UtcNow; OTPCompanyMappingDB.UpdateByUserID = System.Convert.ToInt32(Utility.GetConfigValue("DefaultAdminUserID")); OTPCompanyMappingDB.UpdateDate = DateTime.UtcNow; _context.SaveChanges(); dbContextTransaction.Commit(); } var res = Convert <BO.OTPCompanyMapping, OTPCompanyMapping>(OTPCompanyMappingDB); return((object)res); } } } catch (Exception ex) { return(new BO.ErrorObject { ErrorMessage = "Error occured while associating company.", errorObject = "", ErrorLevel = ErrorLevel.Error }); } }