rewrite DAM to be non-generic
This commit is contained in:
16
COA.EnterpriseServices.DataAccess/Helpers/BaseHelper.cs
Normal file
16
COA.EnterpriseServices.DataAccess/Helpers/BaseHelper.cs
Normal file
@ -0,0 +1,16 @@
|
||||
using AutoMapper;
|
||||
|
||||
namespace COA.EnterpriseServices.DataAccess.Helpers
|
||||
{
|
||||
public class BaseHelper
|
||||
{
|
||||
protected DataAccessManager DataAccess { get; }
|
||||
protected IMapper Mapper { get; }
|
||||
|
||||
public BaseHelper(DataAccessManager dataAccess, IMapper mapper)
|
||||
{
|
||||
DataAccess = dataAccess;
|
||||
Mapper = mapper;
|
||||
}
|
||||
}
|
||||
}
|
@ -3,18 +3,13 @@ using System.Collections.Generic;
|
||||
|
||||
namespace COA.EnterpriseServices.DataAccess.Helpers
|
||||
{
|
||||
public class ClientHelper
|
||||
public class ClientHelper : BaseHelper
|
||||
{
|
||||
private readonly DataAccessManager<Entities.Client> clientDataAccess;
|
||||
|
||||
public ClientHelper(DataAccessManager<Entities.Client> clientDataAccess, IMapper mapper)
|
||||
{
|
||||
this.clientDataAccess = clientDataAccess;
|
||||
}
|
||||
public ClientHelper(DataAccessManager dataAccess, IMapper mapper) : base(dataAccess, mapper) { }
|
||||
|
||||
public ICollection<Entities.Client> FindByEmail(string email)
|
||||
{
|
||||
var client = clientDataAccess.Get(c => c.Email.Equals(email));
|
||||
var client = DataAccess.Get<Entities.Client>(c => c.Email.Equals(email));
|
||||
|
||||
return client;
|
||||
}
|
||||
|
@ -1,50 +1,36 @@
|
||||
using AutoMapper;
|
||||
using COA.EnterpriseServices.Creditors;
|
||||
using COA.EnterpriseServices.DataAccess.Entities;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace COA.EnterpriseServices.DataAccess.Helpers
|
||||
{
|
||||
public class CreditorHelper
|
||||
public class CreditorHelper : BaseHelper
|
||||
{
|
||||
private readonly DataAccessManager<Entities.Creditor> creditorDataAccess;
|
||||
private readonly DataAccessManager<Entities.SettlementAttempt> settlementAttemptDataAccess;
|
||||
private readonly IMapper mapper;
|
||||
|
||||
public CreditorHelper(DataAccessManager<Entities.Creditor> creditorDataAccess, DataAccessManager<Entities.SettlementAttempt> settlementAttemptDataAccess, IMapper mapper)
|
||||
public CreditorHelper(DataAccessManager dataAccess, IMapper mapper) : base(dataAccess, mapper) { }
|
||||
|
||||
public Creditor GetCreditor(int id)
|
||||
{
|
||||
this.creditorDataAccess = creditorDataAccess;
|
||||
this.settlementAttemptDataAccess = settlementAttemptDataAccess;
|
||||
this.mapper = mapper;
|
||||
return DataAccess
|
||||
.Get<Entities.Creditor>(id)
|
||||
.MapTo<Creditor>();
|
||||
}
|
||||
|
||||
public Creditors.Creditor GetCreditor(int id)
|
||||
public SettlementAttempt GetSettlementAttempt(int id)
|
||||
{
|
||||
var creditor = creditorDataAccess.Get(id);
|
||||
|
||||
// map EF => domain type
|
||||
return mapper.Map<Creditors.Creditor>(creditor);
|
||||
return DataAccess
|
||||
.Get<Entities.SettlementAttempt>(id)
|
||||
.MapTo<SettlementAttempt>();
|
||||
}
|
||||
|
||||
public Creditors.SettlementAttempt GetSettlementAttempt(int id)
|
||||
public ICollection<SettlementAttempt> GetSettlements(SettlementAttemptFilter filter)
|
||||
{
|
||||
var attempt = settlementAttemptDataAccess.Get(id);
|
||||
|
||||
return mapper.Map<Creditors.SettlementAttempt>(attempt);
|
||||
}
|
||||
|
||||
public ICollection<Creditors.SettlementAttempt> GetSettlements(SettlementAttemptFilter filter)
|
||||
{
|
||||
// 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))
|
||||
return DataAccess
|
||||
.Raw<Entities.SettlementAttempt>("uspCreditorPortal_SettlementAttemptGet @SettlementAttemptID = {0}, @CreditorProfileID = {1}", filter.SettlementAttemptId, filter.CreditorProfileId)
|
||||
.MapTo<SettlementAttempt>()
|
||||
.ToList();
|
||||
|
||||
//return DBWrapper.ExecuteProcedure(QuickbaseConnectionString, "uspCreditorPortal_SettlementAttemptGet", cmd =>
|
||||
@ -78,41 +64,41 @@ namespace COA.EnterpriseServices.DataAccess.Helpers
|
||||
//});
|
||||
}
|
||||
|
||||
public bool AddCreditor(Creditors.Creditor creditor)
|
||||
public bool AddCreditor(Creditor creditor)
|
||||
{
|
||||
var creditorEntity = mapper.Map<Entities.Creditor>(creditor);
|
||||
|
||||
return creditorDataAccess.Add(creditorEntity);
|
||||
return DataAccess.Add(creditorEntity);
|
||||
}
|
||||
|
||||
public bool UpdateCreditor(Creditors.Creditor creditor)
|
||||
public bool UpdateCreditor(Creditor creditor)
|
||||
{
|
||||
var creditorEntity = mapper.Map<Entities.Creditor>(creditor);
|
||||
|
||||
return creditorDataAccess.Update(creditorEntity);
|
||||
return DataAccess.Update(creditorEntity);
|
||||
}
|
||||
|
||||
public bool SetCreditorStatus(int creditorId, string status)
|
||||
{
|
||||
return creditorDataAccess.Update(creditorId, c => c.Status = status);
|
||||
return DataAccess.Update<Entities.Creditor>(creditorId, c => c.Status = status);
|
||||
}
|
||||
|
||||
public void SetOriginalCreditorAsPrimary(int creditorId)
|
||||
{
|
||||
var creditor = creditorDataAccess.Get(creditorId);
|
||||
var creditor = DataAccess.Get<Entities.Creditor>(creditorId);
|
||||
|
||||
creditor.ReferenceNumber = string.Empty;
|
||||
|
||||
creditorDataAccess.Update(creditor);
|
||||
DataAccess.Update(creditor);
|
||||
}
|
||||
|
||||
public void ClearCreditorReferenceNumber(int creditorId)
|
||||
{
|
||||
var creditor = creditorDataAccess.Get(creditorId);
|
||||
var creditor = DataAccess.Get<Entities.Creditor>(creditorId);
|
||||
|
||||
creditor.CurrentCreditorProfileId = creditor.OriginalCreditorProfileId;
|
||||
|
||||
creditorDataAccess.Update(creditor);
|
||||
DataAccess.Update(creditor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user