318 lines
15 KiB
C#
318 lines
15 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using LCU.Library.Internal.CoreApiWrapperLib.CoreDbUtilities;
|
|
using LCU.Library.Internal.CoreApiWrapperLib.Utilities;
|
|
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Activity;
|
|
using LCU.Library.Internal.CoreApiWrapperModel.LcuModels.Activity;
|
|
|
|
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
|
|
{
|
|
public class ActivityDao : IActivityDao
|
|
{
|
|
private readonly ICoreDbExecution _coreDbExecution;
|
|
private const string NewCheckingAccountSalesDigitalBanking = "Activity/NewCheckingAccountSalesDigitalBanking";
|
|
private const string NewCheckingAccountSalesQuery = "Activity/NewCheckingAccountSales";
|
|
private const string NewAtmCheckCardQuery = "Activity/NewAtmCheckCardSales";
|
|
private const string NewMortgageSalesQuery = "Activity/NewMortgageAccountSales";
|
|
private const string NewVehicleSalesQuery = "Activity/NewVehicleAccountSales";
|
|
private const string NewDebtProtectedLoanQuery = "Activity/NewDebtProtectedLoanSales";
|
|
private const string EStatementDeliveryQuery = "Activity/QueryEStatementDeliveryMethod";
|
|
private const string NewActivityManagerIncentiveReferralQuery = "Activity/NewActivityManagerIncentiveReferralQuery";
|
|
private const string ActivityManagerReferralById = "Activity/QueryActivityManagerActivityDetail";
|
|
private const string GetPersonActivityByPhoneNumberQuery = "Activity/GetPersonActivityByPhoneNumberQuery";
|
|
private const string GetPersonActivityByPersonNumberQuery = "Activity/GetPersonActivityByPersonNumberQuery";
|
|
private const string DnaTimeFormat = "yyyy-MM-dd HH:mm:ss";
|
|
|
|
public ActivityDao(ICoreDbExecution coreDbExecution)
|
|
{
|
|
_coreDbExecution = coreDbExecution;
|
|
}
|
|
|
|
//Some of this could be DRYer, opting for this for better Type Safety and Messaging in Services.
|
|
public async Task<IReadOnlyCollection<NewCheckingAccountActivity>> GetNewCheckingActivitiesNewerThanDate(
|
|
DateTime newerThanDateTime,
|
|
int limitAmount
|
|
)
|
|
{
|
|
var query = QueryUtilities.GetQuery(NewCheckingAccountSalesQuery);
|
|
//Define Anonymous Object to Pass in Parameter "newerThanDateTime: "datetimestring" to query
|
|
//See: https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/types/anonymous-types
|
|
var accountActivityParams = new
|
|
{
|
|
newerThanDateTime = newerThanDateTime.ToString(DnaTimeFormat),
|
|
afterActivityNbr = (string)null,
|
|
limitAmount = limitAmount.ToString()
|
|
};
|
|
var results =
|
|
await _coreDbExecution.ExecuteQuery<NewCheckingAccountActivity, object>(query, accountActivityParams);
|
|
return results.ToList();
|
|
}
|
|
|
|
public async Task<IReadOnlyCollection<NewCheckingAccountActivity>> GetNewCheckingActivitiesAfterActivityNbr(
|
|
long afterActivityNumber,
|
|
int limitAmount
|
|
)
|
|
{
|
|
var query = QueryUtilities.GetQuery(NewCheckingAccountSalesQuery);
|
|
var accountActivityParams = new
|
|
{
|
|
afterActivityNbr = afterActivityNumber.ToString(),
|
|
newerThanDateTime = (string)null,
|
|
limitAmount = limitAmount.ToString()
|
|
};
|
|
var results =
|
|
await _coreDbExecution.ExecuteQuery<NewCheckingAccountActivity, object>(query, accountActivityParams);
|
|
return results.ToList();
|
|
}
|
|
|
|
public async Task<IReadOnlyCollection<NewCheckingAccountActivity>> GetNewCheckingActivities(
|
|
DateTime newerThanDateTime,
|
|
long afterActivityNumber,
|
|
int limitAmount
|
|
)
|
|
{
|
|
var query = QueryUtilities.GetQuery(NewCheckingAccountSalesQuery);
|
|
var accountActivityParams = new
|
|
{
|
|
afterActivityNbr = afterActivityNumber.ToString(),
|
|
newerThanDateTime = newerThanDateTime.ToString(DnaTimeFormat),
|
|
limitAmount = limitAmount.ToString()
|
|
};
|
|
var results =
|
|
await _coreDbExecution.ExecuteQuery<NewCheckingAccountActivity, object>(query, accountActivityParams);
|
|
return results.ToList();
|
|
}
|
|
|
|
public async Task<IReadOnlyCollection<NewCheckingAccountActivity>> GetNewDigitalBankingCheckingActivitiesNewerThanDate(
|
|
DateTime newerThanDateTime,
|
|
int limitAmount
|
|
)
|
|
{
|
|
var query = QueryUtilities.GetQuery(NewCheckingAccountSalesDigitalBanking);
|
|
var accountActivityParams = new
|
|
{
|
|
newerThanDateTime = newerThanDateTime.ToString(DnaTimeFormat),
|
|
afterActivityNbr = (string)null,
|
|
limitAmount = limitAmount.ToString()
|
|
};
|
|
var results =
|
|
await _coreDbExecution.ExecuteQuery<NewCheckingAccountActivity, object>(query, accountActivityParams);
|
|
return results.ToList();
|
|
}
|
|
|
|
public async Task<IReadOnlyCollection<NewCheckingAccountActivity>> GetNewDigitalBankingCheckingActivitiesAfterActivityNbr(
|
|
long afterActivityNumber,
|
|
int limitAmount
|
|
)
|
|
{
|
|
var query = QueryUtilities.GetQuery(NewCheckingAccountSalesDigitalBanking);
|
|
var accountActivityParams = new
|
|
{
|
|
afterActivityNbr = afterActivityNumber.ToString(),
|
|
newerThanDateTime = (string)null,
|
|
limitAmount = limitAmount.ToString()
|
|
};
|
|
var results =
|
|
await _coreDbExecution.ExecuteQuery<NewCheckingAccountActivity, object>(query, accountActivityParams);
|
|
return results.ToList();
|
|
}
|
|
|
|
public async Task<IReadOnlyCollection<NewCheckingAccountActivity>> GetNewDigitalBankingCheckingActivities(
|
|
DateTime newerThanDateTime,
|
|
long afterActivityNumber,
|
|
int limitAmount
|
|
)
|
|
{
|
|
var query = QueryUtilities.GetQuery(NewCheckingAccountSalesDigitalBanking);
|
|
var accountActivityParams = new
|
|
{
|
|
afterActivityNbr = afterActivityNumber.ToString(),
|
|
newerThanDateTime = newerThanDateTime.ToString(DnaTimeFormat),
|
|
limitAmount = limitAmount.ToString()
|
|
};
|
|
var results =
|
|
await _coreDbExecution.ExecuteQuery<NewCheckingAccountActivity, object>(query, accountActivityParams);
|
|
return results.ToList();
|
|
}
|
|
|
|
public async Task<IReadOnlyCollection<NewAtmCheckCardActivity>> GetNewAtmCheckCardActivitiesNewerThanDate(
|
|
DateTime newerThanDateTime,
|
|
int limitAmount
|
|
)
|
|
{
|
|
var query = QueryUtilities.GetQuery(NewAtmCheckCardQuery);
|
|
var accountActivityParams = new
|
|
{
|
|
newerThanDateTime = newerThanDateTime.ToString(DnaTimeFormat),
|
|
afterActivityNbr = (string)null,
|
|
limitAmount = limitAmount.ToString()
|
|
};
|
|
var results =
|
|
await _coreDbExecution.ExecuteQuery<NewAtmCheckCardActivity, object>(query, accountActivityParams);
|
|
return results.ToList();
|
|
}
|
|
|
|
public async Task<IReadOnlyCollection<NewAtmCheckCardActivity>> GetNewAtmCheckCardActivitiesAfterActivityNbr(
|
|
long afterActivityNumber,
|
|
int limitAmount
|
|
)
|
|
{
|
|
var query = QueryUtilities.GetQuery(NewAtmCheckCardQuery);
|
|
var accountActivityParams = new
|
|
{
|
|
afterActivityNbr = afterActivityNumber.ToString(),
|
|
newerThanDateTime = (string)null,
|
|
limitAmount = limitAmount.ToString()
|
|
};
|
|
var results =
|
|
await _coreDbExecution.ExecuteQuery<NewAtmCheckCardActivity, object>(query, accountActivityParams);
|
|
return results.ToList();
|
|
}
|
|
|
|
public async Task<IReadOnlyCollection<NewAtmCheckCardActivity>> GetNewAtmCheckCardActivities(
|
|
DateTime newerThanDateTime,
|
|
long afterActivityNumber,
|
|
int limitAmount
|
|
)
|
|
{
|
|
var query = QueryUtilities.GetQuery(NewAtmCheckCardQuery);
|
|
var accountActivityParams = new
|
|
{
|
|
afterActivityNbr = afterActivityNumber.ToString(),
|
|
newerThanDateTime = newerThanDateTime.ToString(DnaTimeFormat),
|
|
limitAmount = limitAmount.ToString()
|
|
};
|
|
var results =
|
|
await _coreDbExecution.ExecuteQuery<NewAtmCheckCardActivity, object>(query, accountActivityParams);
|
|
return results.ToList();
|
|
}
|
|
|
|
public async Task<IReadOnlyCollection<NewActivityManagerIncentiveReferral>> GetNewActivityManagerReferralsNewerThan(
|
|
DateTime newerThanOriginationDateTime)
|
|
{
|
|
var query = QueryUtilities.GetQuery(NewActivityManagerIncentiveReferralQuery);
|
|
var accountActivityParams = new
|
|
{
|
|
newerThanOriginationDate = newerThanOriginationDateTime.ToString(DnaTimeFormat),
|
|
afterActivityId = (string)null
|
|
};
|
|
var results =
|
|
await _coreDbExecution.ExecuteQuery<NewActivityManagerIncentiveReferral, object>(query, accountActivityParams);
|
|
return results.ToList();
|
|
}
|
|
|
|
public async Task<IReadOnlyCollection<NewActivityManagerIncentiveReferral>> GetNewActivityManagerReferralsAfterActivityId(long afterActivityId)
|
|
{
|
|
var query = QueryUtilities.GetQuery(NewActivityManagerIncentiveReferralQuery);
|
|
var accountActivityParams = new
|
|
{
|
|
afterActivityId = afterActivityId.ToString(),
|
|
newerThanOriginationDate = (string)null
|
|
};
|
|
var results =
|
|
await _coreDbExecution.ExecuteQuery<NewActivityManagerIncentiveReferral, object>(query, accountActivityParams);
|
|
return results.ToList();
|
|
}
|
|
|
|
public async Task<IReadOnlyCollection<NewActivityManagerIncentiveReferral>> GetNewActivityManagerReferrals(DateTime newerThanOriginationDateTime,
|
|
long afterActivityId)
|
|
{
|
|
var query = QueryUtilities.GetQuery(NewActivityManagerIncentiveReferralQuery);
|
|
var accountActivityParams = new
|
|
{
|
|
afterActivityId = afterActivityId.ToString(),
|
|
newerThanOriginationDate = newerThanOriginationDateTime.ToString(DnaTimeFormat),
|
|
};
|
|
var results =
|
|
await _coreDbExecution.ExecuteQuery<NewActivityManagerIncentiveReferral, object>(query, accountActivityParams);
|
|
return results.ToList();
|
|
}
|
|
|
|
public async Task<IReadOnlyCollection<NewLoanSaleActivity>> GetNewMortgageSaleActivities(
|
|
DateTime? newerThanDateTime, long? afterActivityNumber)
|
|
{
|
|
var query = QueryUtilities.GetQuery(NewMortgageSalesQuery);
|
|
var accountActivityParams = new
|
|
{
|
|
afterActivityNbr = afterActivityNumber?.ToString(),
|
|
newerThanDateTime = newerThanDateTime?.ToString(DnaTimeFormat)
|
|
};
|
|
var results =
|
|
await _coreDbExecution.ExecuteQuery<NewLoanSaleActivity, object>(query, accountActivityParams);
|
|
return results.ToList();
|
|
}
|
|
|
|
public async Task<IReadOnlyCollection<NewLoanSaleActivity>> GetNewVehicleSaleActivities(
|
|
DateTime? newerThanDateTime, long? afterActivityNumber)
|
|
{
|
|
var query = QueryUtilities.GetQuery(NewVehicleSalesQuery);
|
|
var accountActivityParams = new
|
|
{
|
|
afterActivityNbr = afterActivityNumber?.ToString(),
|
|
newerThanDateTime = newerThanDateTime?.ToString(DnaTimeFormat)
|
|
};
|
|
var results =
|
|
await _coreDbExecution.ExecuteQuery<NewLoanSaleActivity, object>(query, accountActivityParams);
|
|
return results.ToList();
|
|
}
|
|
|
|
public async Task<IReadOnlyCollection<NewLoanSaleActivity>> GetNewDebtProtectedLoanSaleActivities(
|
|
DateTime? newerThanDateTime, long? afterActivityNumber)
|
|
{
|
|
var query = QueryUtilities.GetQuery(NewDebtProtectedLoanQuery);
|
|
var accountActivityParams = new
|
|
{
|
|
afterActivityNbr = afterActivityNumber?.ToString(),
|
|
newerThanDateTime = newerThanDateTime?.ToString(DnaTimeFormat)
|
|
};
|
|
var results =
|
|
await _coreDbExecution.ExecuteQuery<NewLoanSaleActivity, object>(query, accountActivityParams);
|
|
return results.ToList();
|
|
}
|
|
|
|
public async Task<IReadOnlyCollection<NewActivityManagerIncentiveReferral>> QueryActivityManagerActivity(ActivityQueryRequest request)
|
|
{
|
|
var query = QueryUtilities.GetQuery(ActivityManagerReferralById);
|
|
var accountActivityParams = new
|
|
{
|
|
activityIds = request.ActivityIds.Select(x => x.ToString()).ToArray()
|
|
};
|
|
var results =
|
|
await _coreDbExecution.ExecuteQuery<NewActivityManagerIncentiveReferral, object>(query, accountActivityParams);
|
|
return results.ToList();
|
|
}
|
|
|
|
public async Task<IReadOnlyCollection<EStatementDeliveryMethod>> GetEStatementDeliveryActivity(DateTime? newerThanDateTime)
|
|
{
|
|
var query = QueryUtilities.GetQuery(EStatementDeliveryQuery);
|
|
var accountActivityParams = new
|
|
{
|
|
newerThanDateTime = newerThanDateTime?.ToString(DnaTimeFormat)
|
|
};
|
|
var results =
|
|
await _coreDbExecution.ExecuteQuery<EStatementDeliveryMethod, object>(query, accountActivityParams);
|
|
return results.ToList();
|
|
}
|
|
|
|
public async Task<IReadOnlyCollection<PersonRecentActivity>> GetPersonActivityByPhoneNumber(string phoneNumber)
|
|
{
|
|
var query = QueryUtilities.GetQuery(GetPersonActivityByPhoneNumberQuery);
|
|
var personRecentActivityParams = new
|
|
{
|
|
phoneNumber = phoneNumber
|
|
};
|
|
return (await _coreDbExecution.ExecuteQuery<PersonRecentActivity, dynamic>(query, personRecentActivityParams)).ToList();
|
|
}
|
|
|
|
public async Task<PersonRecentActivity> GetPersonActivityByPersonNumber(string personNumber)
|
|
{
|
|
var query = QueryUtilities.GetQuery(GetPersonActivityByPersonNumberQuery);
|
|
var personRecentActivityParams = new {
|
|
personNumber = personNumber
|
|
};
|
|
return (await _coreDbExecution.ExecuteQuery<PersonRecentActivity, dynamic>(query, personRecentActivityParams)).FirstOrDefault();
|
|
}
|
|
}
|
|
} |