/// <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 activate or inactivate payer and clientpayer /// </summary> /// <param name="payer"></param> public void ActivateOrDeactivatePayer(BusinessModel.BusinessModels.Payer payer) { try { UserContext userContext = UserHelper.getUserContext(); DomainModel.DomainModels.Payer payerModel = (from p in _m3pactContext.Payer where p.PayerCode == payer.PayerCode select p ).ToList().FirstOrDefault(); if (payerModel != null) { if (payerModel.RecordStatus == DomainConstants.RecordStatusActive) { List <ClientPayer> clientPayers = _m3pactContext.ClientPayer.Where(cp => cp.PayerId == payerModel.PayerId && cp.RecordStatus == DomainConstants.RecordStatusActive)?.ToList(); foreach (ClientPayer cp in clientPayers) { cp.RecordStatus = DomainConstants.RecordStatusInactive; cp.EndDate = DateTime.Now.Date; } payerModel.RecordStatus = DomainConstants.RecordStatusInactive; payerModel.EndDate = DateTime.Now.Date; payerModel.ModifiedDate = DateTime.Now; payerModel.ModifiedBy = userContext.UserId; _m3pactContext.Update(payerModel); _m3pactContext.UpdateRange(clientPayers); } else { payerModel.RecordStatus = DomainConstants.RecordStatusActive; payerModel.EndDate = DateTime.MaxValue.Date; payerModel.ModifiedDate = DateTime.Now; payerModel.ModifiedBy = userContext.UserId; _m3pactContext.Update(payerModel); } _m3pactContext.SaveChanges(); } } catch (Exception ex) { throw ex; } }