/// <summary> /// Saves the Payers /// </summary> /// <param name="payersDTO"></param> /// <returns></returns> public bool SavePayers(List <BusinessModel.BusinessModels.Payer> payersDTO) { try { List <DomainModel.DomainModels.Payer> payers = new List <DomainModel.DomainModels.Payer>(); List <DomainModel.DomainModels.Payer> payersUpdated = new List <DomainModel.DomainModels.Payer>(); foreach (BusinessModel.BusinessModels.Payer payerDTO in payersDTO) { DomainModel.DomainModels.Payer payerModel; DomainModel.DomainModels.Payer payer = _m3pactContext.Payer.FirstOrDefault(x => x.PayerId == payerDTO.ID); if (payer != null) { payerModel = payer; payersUpdated.Add(payerModel); } else { payerModel = new DomainModel.DomainModels.Payer(); payerModel.StartDate = DomainConstants.MinDate; payerModel.EndDate = DateTime.MaxValue.Date; payerModel.CreatedBy = userContext.UserId; payerModel.CreatedDate = DateTime.UtcNow;; payers.Add(payerModel); } payerModel.PayerCode = payerDTO.PayerCode; payerModel.PayerName = payerDTO.PayerName; payerModel.PayerDescription = payerDTO.PayerDescription; payerModel.RecordStatus = payerDTO.RecordStatus; payerModel.ModifiedBy = userContext.UserId; payerModel.ModifiedDate = DateTime.UtcNow; } if (payersUpdated.Count > 0) { _m3pactContext.UpdateRange(payersUpdated); } if (payers.Count > 0) { _m3pactContext.Payer.AddRange(payers); } if (payersUpdated.Count > 0 || payers.Count > 0) { _m3pactContext.SaveChanges(); } return(true); } catch (Exception ex) { throw ex; } }
/// <summary> /// To save the configuration in Database /// </summary> /// <param name="attribute"></param> /// <returns></returns> public bool SaveAttributeValue(AttributesBusinessModel attribute) { try { AdminConfigValues adminConfig = _m3pactContext.AdminConfigValues.Where(a => a.AttributeId == attribute.AttributeId && a.RecordStatus == DomainConstants.RecordStatusActive).FirstOrDefault(); adminConfig.AttributeValue = attribute.AttributeValue; adminConfig.ModifiedBy = userContext.UserId; adminConfig.ModifiedDate = DateTime.Now; _m3pactContext.Update(adminConfig); List <ClientConfig> clientConfigs = _m3pactContext.ClientConfig.Where(cc => cc.AttributeId == attribute.AttributeId && cc.RecordStatus == DomainConstants.RecordStatusActive).ToList(); clientConfigs.ForEach(cc => cc.RecordStatus = DomainConstants.RecordStatusInactive); _m3pactContext.UpdateRange(clientConfigs); if (clientConfigs.Count > 0) { List <int> clients = _m3pactContext.Client.Select(c => c.ClientId).ToList(); List <ClientConfig> newClientConfigs = new List <ClientConfig>(); foreach (int client in clients) { ClientConfig clientConfig = new ClientConfig(); clientConfig.AttributeId = attribute.AttributeId; clientConfig.AttributeValue = attribute.AttributeValue; clientConfig.ClientId = client; clientConfig.RecordStatus = DomainConstants.RecordStatusActive; clientConfig.CreatedBy = userContext.UserId; clientConfig.CreatedDate = DateTime.Now; clientConfig.ModifiedDate = DateTime.Now; clientConfig.ModifiedBy = userContext.UserId; newClientConfigs.Add(clientConfig); } _m3pactContext.AddRange(newClientConfigs); } int attributeId = _m3pactContext.Attribute.Where(a => a.AttributeCode == DomainConstants.LastEnteredBusinessDays).Select(a => a.AttributeId).FirstOrDefault(); if (attributeId == attribute.AttributeId) { UpdateProjectedCashForAllClients(attribute); } _m3pactContext.SaveChanges(); return(true); } catch (Exception ex) { throw ex; } }
/// <summary> /// To activate or inactivate sites /// </summary> /// <param name="site"></param> /// <returns></returns> public bool ActivateOrInactivateSites(BusinessModel.BusinessModels.Site site) { try { DomainModel.DomainModels.Site repoSite = _m3pactContext.Site.Where(s => s.SiteId == site.SiteId).ToList().FirstOrDefault(); if (repoSite != null) { if (repoSite.RecordStatus == DomainConstants.RecordStatusActive) { repoSite.RecordStatus = DomainConstants.RecordStatusInactive; List <Client> clients = _m3pactContext.Client.Where(c => c.SiteId == repoSite.SiteId && c.IsActive == DomainConstants.RecordStatusActive)?.ToList(); if (clients != null && clients.Count > 0) { foreach (Client c in clients) { c.RecordStatus = DomainConstants.RecordStatusInactive; c.IsActive = DomainConstants.RecordStatusInactive; } _m3pactContext.UpdateRange(clients); } } else { repoSite.RecordStatus = DomainConstants.RecordStatusActive; } _m3pactContext.Update(repoSite); _m3pactContext.SaveChanges(); return(true); } else { return(false); } } catch (Exception ex) { throw ex; } }
/// <summary> /// Activating or InActivating systems /// </summary> /// <param name="system"></param> /// <returns></returns> public bool ActivateOrInactivateSystems(BusinessModel.Admin.System system) { try { DomainModel.DomainModels.System systemDTO = _m3pactContext.System.FirstOrDefault(s => s.SystemCode == system.SystemCode); if (systemDTO != null) { if (systemDTO.RecordStatus == DomainConstants.RecordStatusActive) { systemDTO.RecordStatus = DomainConstants.RecordStatusInactive; List <Client> clients = _m3pactContext.Client.Where(c => c.SystemId == systemDTO.SystemId && c.IsActive == DomainConstants.RecordStatusActive).ToList(); if (clients != null && clients.Count > 0) { foreach (Client c in clients) { c.RecordStatus = DomainConstants.RecordStatusInactive; c.IsActive = DomainConstants.RecordStatusInactive; } _m3pactContext.UpdateRange(clients); } _m3pactContext.Update(systemDTO); } else { systemDTO.RecordStatus = DomainConstants.RecordStatusActive; _m3pactContext.Update(systemDTO); } _m3pactContext.SaveChanges(); } return(true); } catch (Exception ex) { throw ex; } }