using AutoMapper; using COA.EnterpriseServices.DataAccess.Entities; namespace COA.EnterpriseServices.DataAccess.Helpers { public class CreditorHelper { private readonly DataAccessManager creditorDataAccess; private readonly DataAccessManager settlementAttemptDataAccess; private readonly IMapper mapper; public CreditorHelper(DataAccessManager creditorDataAccess, DataAccessManager settlementAttemptDataAccess, IMapper mapper) { this.creditorDataAccess = creditorDataAccess; this.settlementAttemptDataAccess = settlementAttemptDataAccess; this.mapper = mapper; } public Creditors.Creditor GetCreditor(int id) { var creditor = creditorDataAccess.Get(id); // map EF => domain type return mapper.Map(creditor); } public SettlementAttempt GetSettlementAttempt(int id) { return settlementAttemptDataAccess.Get(id); } public bool AddCreditor(Creditors.Creditor creditor) { var creditorEntity = mapper.Map(creditor); return creditorDataAccess.Add(creditorEntity); } public bool UpdateCreditor(Creditors.Creditor creditor) { var creditorEntity = mapper.Map(creditor); return creditorDataAccess.Update(creditorEntity); } public bool SetCreditorStatus(int creditorId, string status) { return creditorDataAccess.Update(creditorId, c => c.Status = status); } public void SetOriginalCreditorAsPrimary(int creditorId) { var creditor = creditorDataAccess.Get(creditorId); creditor.ReferenceNumber = string.Empty; creditorDataAccess.Update(creditor); } public void ClearCreditorReferenceNumber(int creditorId) { var creditor = creditorDataAccess.Get(creditorId); creditor.CurrentCreditorProfileId = creditor.OriginalCreditorProfileId; creditorDataAccess.Update(creditor); } } }