2020-10-15 13:34:25 +00:00
|
|
|
|
using AutoMapper;
|
2020-10-16 03:05:21 +00:00
|
|
|
|
using COA.EnterpriseServices.Creditors;
|
2020-10-15 13:34:25 +00:00
|
|
|
|
using COA.EnterpriseServices.DataAccess.Entities;
|
2020-10-16 03:05:21 +00:00
|
|
|
|
using System.Collections.Generic;
|
2020-10-16 03:15:28 +00:00
|
|
|
|
using System.Linq;
|
2020-10-14 12:35:14 +00:00
|
|
|
|
|
|
|
|
|
namespace COA.EnterpriseServices.DataAccess.Helpers
|
|
|
|
|
{
|
2020-10-14 16:23:04 +00:00
|
|
|
|
public class CreditorHelper
|
2020-10-14 12:35:14 +00:00
|
|
|
|
{
|
2020-10-16 03:05:21 +00:00
|
|
|
|
private readonly DataAccessManager<Entities.Creditor> creditorDataAccess;
|
|
|
|
|
private readonly DataAccessManager<Entities.SettlementAttempt> settlementAttemptDataAccess;
|
2020-10-15 13:34:25 +00:00
|
|
|
|
private readonly IMapper mapper;
|
2020-10-14 16:23:04 +00:00
|
|
|
|
|
2020-10-16 03:05:21 +00:00
|
|
|
|
public CreditorHelper(DataAccessManager<Entities.Creditor> creditorDataAccess, DataAccessManager<Entities.SettlementAttempt> settlementAttemptDataAccess, IMapper mapper)
|
2020-10-14 16:23:04 +00:00
|
|
|
|
{
|
2020-10-15 01:38:25 +00:00
|
|
|
|
this.creditorDataAccess = creditorDataAccess;
|
|
|
|
|
this.settlementAttemptDataAccess = settlementAttemptDataAccess;
|
2020-10-15 13:34:25 +00:00
|
|
|
|
this.mapper = mapper;
|
2020-10-14 21:57:39 +00:00
|
|
|
|
}
|
|
|
|
|
|
2020-10-15 13:34:25 +00:00
|
|
|
|
public Creditors.Creditor GetCreditor(int id)
|
2020-10-14 16:23:04 +00:00
|
|
|
|
{
|
2020-10-15 13:34:25 +00:00
|
|
|
|
var creditor = creditorDataAccess.Get(id);
|
|
|
|
|
|
|
|
|
|
// map EF => domain type
|
|
|
|
|
return mapper.Map<Creditors.Creditor>(creditor);
|
2020-10-14 16:23:04 +00:00
|
|
|
|
}
|
|
|
|
|
|
2020-10-16 03:05:21 +00:00
|
|
|
|
public Creditors.SettlementAttempt GetSettlementAttempt(int id)
|
2020-10-14 16:23:04 +00:00
|
|
|
|
{
|
2020-10-16 03:05:21 +00:00
|
|
|
|
var attempt = settlementAttemptDataAccess.Get(id);
|
|
|
|
|
|
|
|
|
|
return mapper.Map<Creditors.SettlementAttempt>(attempt);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public ICollection<Creditors.SettlementAttempt> GetSettlements(SettlementAttemptFilter filter)
|
|
|
|
|
{
|
2020-10-16 03:15:28 +00:00
|
|
|
|
// we may use this non-generic throughout instead
|
|
|
|
|
var dataAccess = new DataAccessManager2();
|
|
|
|
|
|
|
|
|
|
// More info on "FromSqlRaw" => https://docs.microsoft.com/en-us/ef/core/querying/raw-sql
|
|
|
|
|
var attempts = dataAccess.Raw<Entities.SettlementAttempt>("uspCreditorPortal_SettlementAttemptGet @SettlementAttemptID = {0}, @CreditorProfileID = {1}", filter.SettlementAttemptId, filter.CreditorProfileId);
|
|
|
|
|
|
|
|
|
|
// TODO: write extension to map list of T to destination type
|
|
|
|
|
return attempts
|
|
|
|
|
.Select(a => mapper.Map<Creditors.SettlementAttempt>(a))
|
|
|
|
|
.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<SettlementAttempt>();
|
|
|
|
|
//});
|
2020-10-14 16:23:04 +00:00
|
|
|
|
}
|
|
|
|
|
|
2020-10-15 13:34:25 +00:00
|
|
|
|
public bool AddCreditor(Creditors.Creditor creditor)
|
2020-10-14 16:23:04 +00:00
|
|
|
|
{
|
2020-10-16 03:15:28 +00:00
|
|
|
|
var creditorEntity = mapper.Map<Entities.Creditor>(creditor);
|
2020-10-15 12:48:11 +00:00
|
|
|
|
|
2020-10-15 13:34:25 +00:00
|
|
|
|
return creditorDataAccess.Add(creditorEntity);
|
2020-10-14 12:35:14 +00:00
|
|
|
|
}
|
2020-10-15 11:07:32 +00:00
|
|
|
|
|
2020-10-16 02:17:27 +00:00
|
|
|
|
public bool UpdateCreditor(Creditors.Creditor creditor)
|
2020-10-15 12:48:11 +00:00
|
|
|
|
{
|
2020-10-16 03:15:28 +00:00
|
|
|
|
var creditorEntity = mapper.Map<Entities.Creditor>(creditor);
|
2020-10-15 12:48:11 +00:00
|
|
|
|
|
2020-10-15 13:34:25 +00:00
|
|
|
|
return creditorDataAccess.Update(creditorEntity);
|
2020-10-15 12:48:11 +00:00
|
|
|
|
}
|
|
|
|
|
|
2020-10-15 11:07:32 +00:00
|
|
|
|
public bool SetCreditorStatus(int creditorId, string status)
|
|
|
|
|
{
|
2020-10-15 12:08:02 +00:00
|
|
|
|
return creditorDataAccess.Update(creditorId, c => c.Status = status);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void SetOriginalCreditorAsPrimary(int creditorId)
|
|
|
|
|
{
|
|
|
|
|
var creditor = creditorDataAccess.Get(creditorId);
|
|
|
|
|
|
2020-10-16 02:17:27 +00:00
|
|
|
|
creditor.ReferenceNumber = string.Empty;
|
|
|
|
|
|
|
|
|
|
creditorDataAccess.Update(creditor);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void ClearCreditorReferenceNumber(int creditorId)
|
|
|
|
|
{
|
|
|
|
|
var creditor = creditorDataAccess.Get(creditorId);
|
|
|
|
|
|
2020-10-15 12:08:02 +00:00
|
|
|
|
creditor.CurrentCreditorProfileId = creditor.OriginalCreditorProfileId;
|
|
|
|
|
|
|
|
|
|
creditorDataAccess.Update(creditor);
|
2020-10-15 11:07:32 +00:00
|
|
|
|
}
|
2020-10-14 12:35:14 +00:00
|
|
|
|
}
|
|
|
|
|
}
|