using LCU.Library.Internal.IncentiveApiModels.Entities; using LCU.Library.Internal.IncentiveApiModels.Enums; namespace LCU.API.Internal.Operations.IncentiveApi.Models.Action; public class ActionCreditCardBusinessRow : IActionFileObject { public string BookedDate { get; set; } public string BusinessTradeName { get; set; } public string BusinessLegalName { 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 = BusinessLegalName, 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 = BusinessLegalName, 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"; } }