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

87 lines
3.2 KiB
C#

using LCU.Library.Internal.IncentiveApiModels.Entities;
using LCU.Library.Internal.IncentiveApiModels.Enums;
namespace LCU.API.Internal.Operations.IncentiveApi.Models.Action;
public class ActionCreditCardPersonalRow : IActionFileObject
{
public string BookedDate { get; set; }
public string MemberFirstName { get; set; }
public string MemberLastName { get; set; }
public string AppID { get; set; }
public string Principal { get; set; }
public string ProdDetailFirstName { get; set; }
public string ProdDetailLastName { get; set; }
public string ProdDetailEmail { get; set; }
public string ProdDetailEmployeeNum { get; set; }
public string IncentiveEarnedEmail { get; set; }
public string ProductShortName { get; set; }
public Activity CreateActivity(AppUser appUser)
{
var homeDept = appUser.FindHomeDepartment();
return new Activity()
{
Product = Product.CreditCard,
Type = ActivityType.Sale,
State = ActivityState.Accepted,
SourceSystem = SystemType.Action,
SourceCreated = DateTime.Parse(BookedDate),
Accepted = DateTime.Parse(BookedDate).Date.AddHours(12),
SourceId = AppID,
Detail = new ActivityDetail()
{
MemberName = MemberFirstName + " " + MemberLastName,
AccountBalance = IActionFileObject.ParseMoneyDouble(Principal),
AccountStatus = ProductShortName
},
AppUserId = appUser.Id,
EmployeeEmail = appUser.AdEmail,
EmployeeId = appUser.EmployeeId,
DepartmentId = homeDept.DepartmentId
};
}
public DeadActivity CreateDeadActivity(DeadActivityReason reasonCode, string note, string employeeEmail = null, string employeeId = null)
{
return new DeadActivity(AppID, SystemType.Action, reasonCode, note)
{
Product = Product.CreditCard,
Type = ActivityType.Sale,
State = ActivityState.Accepted,
SourceSystem = SystemType.Action,
SourceCreated = DateTime.Parse(BookedDate),
Accepted = DateTime.Parse(BookedDate).Date.AddHours(12),
SourceId = AppID,
DeadDetail = new DeadActivityDetail()
{
MemberName = MemberFirstName + " " + MemberLastName,
AccountBalance = IActionFileObject.ParseMoneyDouble(Principal),
AccountStatus = ProductShortName
},
EmployeeEmail = employeeEmail,
EmployeeId = employeeId,
};
}
public string GetEmployeeEmail()
{
return string.IsNullOrWhiteSpace(IncentiveEarnedEmail) ? null : IncentiveEarnedEmail.Trim();
}
public string GetLoanOfficerEmail()
{
return string.IsNullOrWhiteSpace(ProdDetailEmail) ? null : ProdDetailEmail.Trim();
}
public string GetLoanOfficerEmailByName()
{
if (string.IsNullOrWhiteSpace(ProdDetailFirstName) || string.IsNullOrWhiteSpace(ProdDetailLastName))
{
return null;
}
return $"{ProdDetailFirstName.Trim()}{ProdDetailLastName.Trim()}@landmarkcu.com";
}
}