103 lines
3.7 KiB
C#
103 lines
3.7 KiB
C#
using LCU.Library.Internal.IncentiveApiModels.Entities;
|
|
using LCU.Library.Internal.IncentiveApiModels.Enums;
|
|
using LCU.API.Internal.Operations.IncentiveApiLib.Services;
|
|
|
|
namespace LCU.API.Internal.Operations.IncentiveApi.Models.ExternalActivities;
|
|
|
|
public class NewAtmCheckCardActivity : IExternalActivity
|
|
{
|
|
public long ActivityNbr { get; set; }
|
|
public DateTime ActivityDateTime { get; set; }
|
|
public long ResponsiblePersonNbr { get; set; }
|
|
public string ActivityTypeCde { get; set; }
|
|
public long AgreementNbr { get; set; }
|
|
public string CardState { get; set; }
|
|
public string CardType { get; set; }
|
|
public long AccountNbr { get; set; }
|
|
public string OwnerPersonNbr { get; set; }
|
|
public string OwnerOrgNbr { get; set; }
|
|
public string AcctStateAtActivity { get; set; }
|
|
public string AcctStatAtQueryTime { get; set; }
|
|
public DateTime AcctStateEffDateTime { get; set; }
|
|
public string AssociateFirst { get; set; }
|
|
public string AssociateMiddleInit { get; set; }
|
|
public string AssociateLast { get; set; }
|
|
public string EmployeeEmail { get; set; }
|
|
public string TaxOrgName { get; set; }
|
|
public string TaxPersonName { get; set; }
|
|
public string TaxPersonPhoneNumbers { get; set; }
|
|
public string TaxPersonEmailAddresses { get; set; }
|
|
|
|
static readonly TimeZoneInfo AssumedSourceTimezone = TimeZoneConverter.TZConvert.GetTimeZoneInfo("America/Chicago");
|
|
|
|
public Activity MapToActivity()
|
|
{
|
|
return new Activity()
|
|
{
|
|
Product = GetProductType(),
|
|
Type = GetActivityType(),
|
|
SourceSystem = GetSystemType(),
|
|
SourceId = ActivityNbr.ToString(),
|
|
SourceCreated = TimeZoneInfo.ConvertTime(ActivityDateTime, AssumedSourceTimezone, TimeZoneInfo.Utc),
|
|
Detail = new ActivityDetail()
|
|
{
|
|
MemberName = TaxOrgName ?? TaxPersonName,
|
|
DnaPersonNbr = ResponsiblePersonNbr.ToString(),
|
|
SubjectPersonNbr = OwnerPersonNbr,
|
|
SubjectOrgNbr = OwnerOrgNbr,
|
|
AccountNumber = AccountNbr.ToString(),
|
|
AccountStatus = AcctStatAtQueryTime,
|
|
AgreementNumber = AgreementNbr.ToString()
|
|
},
|
|
MetaData = DataParsingService.MapActivityMetaData(new List<string> { TaxPersonPhoneNumbers, TaxPersonEmailAddresses }),
|
|
DepartmentId = -1,
|
|
EmployeeId = null,
|
|
EmployeeEmail = EmployeeEmail,
|
|
Accepted = ActivityDateTime.Date.AddHours(12),
|
|
State = ActivityState.Created
|
|
};
|
|
}
|
|
|
|
public ActivityType GetActivityType()
|
|
{
|
|
return ActivityType.Other;
|
|
}
|
|
|
|
public Product GetProductType()
|
|
{
|
|
return CardType.Equals("ATM", StringComparison.InvariantCultureIgnoreCase) ? Product.ATMCard : Product.CheckCard;
|
|
}
|
|
|
|
public string GetSourceId()
|
|
{
|
|
return ActivityNbr.ToString();
|
|
}
|
|
|
|
public List<ActivityMetaData> MapActivityMetaData()
|
|
{
|
|
var parsedMetaData = new List<ActivityMetaData>();
|
|
if (!string.IsNullOrWhiteSpace(TaxPersonEmailAddresses))
|
|
{
|
|
foreach (var item in TaxPersonEmailAddresses.Split(",", StringSplitOptions.RemoveEmptyEntries))
|
|
{
|
|
parsedMetaData.Add(DataParsingService.DetermineActivityMetaData(item));
|
|
}
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(TaxPersonPhoneNumbers))
|
|
{
|
|
foreach (var item in TaxPersonPhoneNumbers.Split(",", StringSplitOptions.RemoveEmptyEntries))
|
|
{
|
|
parsedMetaData.Add(DataParsingService.DetermineActivityMetaData(item));
|
|
}
|
|
}
|
|
|
|
return parsedMetaData;
|
|
}
|
|
|
|
public SystemType GetSystemType()
|
|
{
|
|
return SystemType.Dna;
|
|
}
|
|
}
|