using AutoMapper; using COA.EnterpriseServices.Creditors; using System.Collections.Generic; using System.Linq; namespace COA.EnterpriseServices.DataAccess.Helpers { public class CreditorHelper : BaseHelper { private readonly IMapper mapper; public CreditorHelper(DataAccessManager dataAccess, IMapper mapper) : base(dataAccess, mapper) { } public Creditor GetCreditor(int id) { return DataAccess .Get(id) .MapTo(); } public SettlementAttempt GetSettlementAttempt(int id) { return DataAccess .Get(id) .MapTo(); } public ICollection GetSettlements(SettlementAttemptFilter filter) { // More info on "FromSqlRaw" => https://docs.microsoft.com/en-us/ef/core/querying/raw-sql return DataAccess .Raw("uspCreditorPortal_SettlementAttemptGet @SettlementAttemptID = {0}, @CreditorProfileID = {1}", filter.SettlementAttemptId, filter.CreditorProfileId) .MapTo() .ToList(); //return DBWrapper.ExecuteProcedure(QuickbaseConnectionString, "uspCreditorPortal_SettlementAttemptGet", cmd => //{ // if (filter != null) // { // cmd.CommandTimeout = 0; // cmd.Parameters.AddWithValue("@SettlementAttemptID", filter.SettlementAttemptId); // cmd.Parameters.AddWithValue("@CreditorProfileID", filter.CreditorProfileId); // cmd.Parameters.AddWithValue("@CreditorID", filter.CreditorId); // cmd.Parameters.AddWithValue("@CreditorContactID", filter.CreditorContactId); // cmd.Parameters.AddWithValue("@FirstPaymentDateStart", filter.FirstPaymentDateStart); // cmd.Parameters.AddWithValue("@FirstPaymentDateEnd", filter.FirstPaymentDateEnd); // cmd.Parameters.AddWithValue("@ResponseDateStart", filter.ResponseDateStart); // cmd.Parameters.AddWithValue("@ResponseDateEnd", filter.ResponseDateEnd); // cmd.Parameters.AddWithValue("@PortalSubmissionDateStart", filter.PortalSubmissionDateStart); // cmd.Parameters.AddWithValue("@PortalSubmissionDateEnd", filter.PortalSubmissionDateEnd); // if (filter.SettlementAttemptIds.AnyAndNotNull()) // { // cmd.Parameters.Add("@SettlementAttemptIDs", SqlDbType.Structured).Value = CreateIdsTable(filter.SettlementAttemptIds); // } // else if (filter.CreditorIds.AnyAndNotNull()) // { // cmd.Parameters.Add("@CreditorIDs", SqlDbType.Structured).Value = CreateIdsTable(filter.CreditorIds); // } // } // return cmd.ToList(); //}); } public bool AddCreditor(Creditor creditor) { var creditorEntity = mapper.Map(creditor); return DataAccess.Add(creditorEntity); } public bool UpdateCreditor(Creditor creditor) { var creditorEntity = mapper.Map(creditor); return DataAccess.Update(creditorEntity); } public bool SetCreditorStatus(int creditorId, string status) { return DataAccess.Update(creditorId, c => c.Status = status); } public void SetOriginalCreditorAsPrimary(int creditorId) { var creditor = DataAccess.Get(creditorId); creditor.ReferenceNumber = string.Empty; DataAccess.Update(creditor); } public void ClearCreditorReferenceNumber(int creditorId) { var creditor = DataAccess.Get(creditorId); creditor.CurrentCreditorProfileId = creditor.OriginalCreditorProfileId; DataAccess.Update(creditor); } } }