Files
monorepo/LCU.API.Operations.IncentiveAPI/LCU.API.Internal.Operations.IncentiveApi/Models/ExternalActivities/NewAtmCheckCardActivity.cs
T
2026-03-17 09:53:09 -05:00

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;
}
}