This commit is contained in:
Zeeshaun
2026-03-13 09:28:55 -05:00
parent a675c5f5b0
commit 4e6099ff5c
184 changed files with 13756 additions and 0 deletions
@@ -0,0 +1,17 @@
using CsvHelper.Configuration.Attributes;
namespace LCU.Api.Internal.DataCleanUp.Models
{
public class AccountCreditReportType
{
[Index(0)]
public long AccountNumber { get; set; }
[Index(1)]
public string BorrowerName { get; set; }
[Index(2)]
public decimal Balance { get; set; }
}
}
@@ -0,0 +1,21 @@
using CsvHelper.Configuration.Attributes;
namespace LCU.Api.Internal.DataCleanUp.Models;
public class AccountNickname
{
[Index(0)]
public int CustomerNumber { get; set; }
[Index(1)]
public long AccountNumber { get; set; }
[Index(2)]
public string AccountType { get; set; }
[Index(3)]
public string BusinessName { get; set; }
[Index(4)]
public string Nickname { get; set; }
}
@@ -0,0 +1,49 @@
using CsvHelper.Configuration.Attributes;
namespace LCU.Api.Internal.DataCleanUp.Models
{
public class BatchAddFundsToVipAccounts
{
[Index(0)]
public string NeedToFund { get; set; }
[Index(1)]
public string AccountNumber { get; set; }
[Index(2)]
public string MemberNumber { get; set; }
[Index(3)]
public string MemberName { get; set; }
[Index(4)]
public string NewMember { get; set; }
[Index(5)]
public string MajorCode { get; set; }
[Index(6)]
public string MinorCode { get; set; }
[Index(7)]
public string MinorDescription { get; set; }
[Index(8)]
public string AccountCreatedDate { get; set; }
[Index(9)]
public string InitialFundingDate { get; set; }
[Index(10)]
public string FundingAmount { get; set; }
[Index(11)]
public string FundingType { get; set; }
[Index(12)]
public string TransactinDescription { get; set; }
[Index(13)]
public string PromoCode { get; set; }
}
}
@@ -0,0 +1,73 @@
using CsvHelper.Configuration.Attributes;
namespace LCU.Api.Internal.DataCleanUp.Models;
public class BatchAddFundsToVipAccountsSummary
{
[Index(0)]
public string Funded { get; set; }
[Index(1)]
public string AmountFunded { get; set; }
[Index(2)]
public string AccountNumber { get; set; }
[Index(3)]
public string MemberNumber { get; set; }
[Index(4)]
public string MemberName { get; set; }
[Index(5)]
public string NewMember { get; set; }
[Index(6)]
public string MajorCode { get; set; }
[Index(7)]
public string MinorCode { get; set; }
[Index(8)]
public string MinorDescription { get; set; }
[Index(9)]
public string AccountCreatedDate { get; set; }
[Index(10)]
public string InitialFundingDate { get; set; }
[Index(11)]
public string FundingAmount { get; set; }
[Index(12)]
public string FundingType { get; set; }
[Index(13)]
public string TransactinDescription { get; set; }
[Index(14)]
public string PromoCode { get; set; }
public BatchAddFundsToVipAccountsSummary TransformNewSummary(bool funded, BatchAddFundsToVipAccounts vipAccount, double amountFunded)
{
var result = new BatchAddFundsToVipAccountsSummary()
{
Funded = funded ? "Yes" : "No",
AmountFunded = funded ? "$"+amountFunded.ToString() : "$0.00",
AccountNumber = vipAccount.AccountNumber,
MemberNumber = vipAccount.MemberNumber,
MemberName = vipAccount.MemberName,
NewMember = vipAccount.NewMember,
MajorCode = vipAccount.MajorCode,
MinorCode = vipAccount.MinorCode,
MinorDescription = vipAccount.MinorDescription,
AccountCreatedDate = vipAccount.AccountCreatedDate,
InitialFundingDate = vipAccount.InitialFundingDate,
FundingAmount = vipAccount.FundingAmount,
FundingType = vipAccount.FundingType,
TransactinDescription = vipAccount.TransactinDescription,
PromoCode = vipAccount.PromoCode
};
return result;
}
}
@@ -0,0 +1,119 @@
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Persons;
using System.ComponentModel.DataAnnotations.Schema;
namespace LCU.Api.Internal.DataCleanUp.Models;
public class CheckHoldsUserFieldValue
{
public CheckHoldsUserFieldValue()
{
}
public CheckHoldsUserFieldValue(PersonCheckHoldsUserField personUserField, DateTime checkHoldEndDate)
{
PersonCheckHoldsUser = personUserField;
CheckHoldEndDate = checkHoldEndDate;
}
public PersonCheckHoldsUserField PersonCheckHoldsUser { get; set; }
public DateTime CheckHoldEndDate { get; set; }
[NotMapped]
public bool NoAccounts_YesValue
{
get
{
//this person does not have any accounts
var value = !PersonCheckHoldsUser.OldestActiveEffectiveDate.HasValue == true && !PersonCheckHoldsUser.RecentClosedEffectiveDate.HasValue == true;
return value == true;
}
}
[NotMapped]
public bool NoClosedInvalidActive_YesValue
{
get
{
//this person does not have any active accounts within valid check hold timeframe and no valid closed accounts
var value = PersonCheckHoldsUser.OldestActiveEffectiveDate.HasValue == true && !PersonCheckHoldsUser.RecentClosedEffectiveDate.HasValue == true && PersonCheckHoldsUser.OldestActiveEffectiveDate > CheckHoldEndDate;
return value;
}
}
[NotMapped]
public bool NoActiveInvalidClosed_YesValue
{
get
{
//this person does not have any active accounts within valid check hold timeframe and no closed accounts within valid check hold timeframe
var value = !PersonCheckHoldsUser.OldestActiveEffectiveDate.HasValue == true && PersonCheckHoldsUser.RecentClosedEffectiveDate.HasValue == true && PersonCheckHoldsUser.RecentClosedEffectiveDate <= CheckHoldEndDate;
return value;
}
}
[NotMapped]
public bool NoActiveClosedValid_NoValue
{
get
{
//this person does not have any valid active accounts and their closed account is within valid check hold timeframe
var value = !PersonCheckHoldsUser.OldestActiveEffectiveDate.HasValue == true && PersonCheckHoldsUser.RecentClosedEffectiveDate.HasValue == true && PersonCheckHoldsUser.RecentClosedEffectiveDate >= CheckHoldEndDate;
return value;
}
}
[NotMapped]
public bool NoClosedActiveValid_NoValue
{
get
{
//this person does have active accounts within valid check hold timeframe and no valid closed accounts
var value = PersonCheckHoldsUser.OldestActiveEffectiveDate <= CheckHoldEndDate && !PersonCheckHoldsUser.RecentClosedEffectiveDate.HasValue == true;
return value;
}
}
[NotMapped]
public bool ActiveClosedValid_NoValue
{
get
{
//this person does have active accounts within valid check hold timeframe and closed accounts within valid check hold timeframe
var value = PersonCheckHoldsUser.OldestActiveEffectiveDate <= CheckHoldEndDate && PersonCheckHoldsUser.RecentClosedEffectiveDate >= CheckHoldEndDate;
return value;
}
}
[NotMapped]
public bool ActiveInValidClosedValid_NoValue
{
get
{
//this person does not have active accounts within valid check hold timeframe and has closed accounts within valid check hold timeframe
var value = PersonCheckHoldsUser.OldestActiveEffectiveDate >= CheckHoldEndDate && PersonCheckHoldsUser.RecentClosedEffectiveDate > CheckHoldEndDate;
return value;
}
}
[NotMapped]
public bool ActiveValidClosedInValid_NoValue
{
get
{
//this person does have active accounts within valid check hold timeframe and closed accounts not within valid check hold timeframe
var value = PersonCheckHoldsUser.OldestActiveEffectiveDate <= CheckHoldEndDate && PersonCheckHoldsUser.RecentClosedEffectiveDate <= CheckHoldEndDate;
return value;
}
}
[NotMapped]
public bool ActiveInValidClosedInValid_YesValue
{
get
{
//this person does not have active accounts within valid check hold timeframe and closed accounts not within valid check hold timeframe
var value = PersonCheckHoldsUser.OldestActiveEffectiveDate >= CheckHoldEndDate && PersonCheckHoldsUser.RecentClosedEffectiveDate <= CheckHoldEndDate;
return value;
}
}
}
@@ -0,0 +1,35 @@
using FileHelpers;
namespace LCU.Api.Internal.DataCleanUp.Models;
[DelimitedRecord(",")]
[IgnoreEmptyLines]
[IgnoreFirst(1)]
public class FannieMaeMortgage
{
public string ServicerNumber { get; set; }
[FieldConverter(ConverterKind.Int64)]
public long? FannieMaeLoanNumber { get; set; }
public string PoolIssueDate { get; set; }
public string ServicerName { get; set; }
[FieldConverter(ConverterKind.Int64)]
public long? ServicerLoanNumber { get; set; }
public string PropertyStreetAddress { get; set; }
public string PropertyCity { get; set; }
public string PropertyState { get; set; }
public string PropertyZipCode { get; set; }
public string PoolNumber { get; set; }
public string PfpStatus { get; set; }
}
@@ -0,0 +1,20 @@
namespace LCU.Api.Internal.DataCleanUp.Models
{
public class FannieMaeTotalBatchSummary
{
public List<FannieMaeUpdateResult> UpdateResults { get; set; }
public int TotalRecordsFound { get; set; }
public int TotalRecordsUpdated { get; set; }
public int TotalErrorRecords { get; set; }
public bool ErrorFileCreated { get; set; } = false;
public FannieMaeTotalBatchSummary(List<FannieMaeUpdateResult> updateResults, bool errorFileCreationSuccess)
{
UpdateResults = updateResults;
TotalErrorRecords = 0;
TotalRecordsUpdated = 0;
TotalRecordsFound = 0;
ErrorFileCreated = errorFileCreationSuccess;
}
}
}
@@ -0,0 +1,24 @@
namespace LCU.Api.Internal.DataCleanUp.Models;
public class FannieMaeUpdateResult
{
public List<FannieMaeMortgage> UpdateList { get; set; }
public List<string> ErrorList { get; set; }
public int TotalRecordsFound { get; set; }
public string Filename { get; set; }
public FannieMaeUpdateResult(string filename)
{
ErrorList = new List<string>();
UpdateList = new List<FannieMaeMortgage>();
TotalRecordsFound = 0;
Filename = filename;
}
public void AddStringToErrorList(FannieMaeMortgage record, string errorMessage)
{
var errorRecord = $"{record.ServicerLoanNumber}|{record.PoolNumber}|{record.PoolIssueDate}|{errorMessage}\n";
ErrorList.Add(errorRecord);
}
}
@@ -0,0 +1,13 @@
namespace LCU.Api.Internal.DataCleanUp.Models;
public class IndirectSavingsAccount
{
public long SavingsAccountNumber { get; set; }
public string MinorAccountType { get; set; }
public long BranchCode { get; set; }
public string TaxOwnerName { get; set; }
}
@@ -0,0 +1,7 @@
namespace LCU.Api.Internal.DataCleanUp.Models;
public class IndirectSavingsAccountResult
{
public string TotalAccountsFunded { get; set; }
public string TotalAccountsNotFunded { get; set; }
}
@@ -0,0 +1,34 @@
using CsvHelper.Configuration.Attributes;
namespace LCU.Api.Internal.DataCleanUp.Models;
public class IndirectSavingsAccountsSummary
{
[Index(0)]
public string AccountNumber { get; set; }
[Index(1)]
public string AmountFunded { get; set; }
[Index(2)]
public string BranchCode { get; set; }
[Index(3)]
public string Name { get; set; }
[Index(4)]
public string ErrorMessage { get; set; }
public IndirectSavingsAccountsSummary TransformNewSummary(long accountNumber, double amountFunded,
long branchCode, string name, string errorMessage)
{
var result = new IndirectSavingsAccountsSummary()
{
AccountNumber = accountNumber.ToString(),
AmountFunded = errorMessage == string.Empty ? amountFunded.ToString() : "0",
BranchCode = branchCode.ToString(),
Name = name.ToString(),
ErrorMessage = errorMessage
};
return result;
}
}
@@ -0,0 +1,58 @@
using CsvHelper.Configuration.Attributes;
namespace LCU.Api.Internal.DataCleanUp.Models;
public class MissingBatchSavings
{
[Index(0)]
public int CustomerNumber { get; set; }
[Index(1)]
public string FirstName { get; set; }
[Index(2)]
public string LastName { get; set; }
[Index(3)]
public string CustomerType { get; set; }
[Index(4)]
public string OrganizationName { get; set; }
[Index(5)]
public int CoreSavingsAccount { get; set; }
[Index(6)]
public string SavingsAccountNumber { get; set; }
[Index(7)]
public decimal SavingsAccountBalance { get; set; }
[Index(8)]
public int BranchCode { get; set; }
[Index(9)]
public int ControlPerson { get; set; }
[Index(10)]
public string ControlPersonNeeded { get; set; }
[Index(11)]
public string CustomerAddress1 { get; set; }
[Index(12)]
public string CustomerAddress2 { get; set; }
[Index(13)]
public string CustomerCity { get; set; }
[Index(14)]
public string CustomerState { get; set; }
[Index(15)]
public string CustomerZip { get; set; }
[Index(16)]
public string ControlPersonAssigned { get; set; }
}
@@ -0,0 +1,67 @@
using CsvHelper.Configuration.Attributes;
namespace LCU.Api.Internal.DataCleanUp.Models;
public class MissingBatchSavingsSummary
{
[Index(0)]
public int CustomerNumber { get; set; }
[Index(1)]
public string FirstName { get; set; }
[Index(2)]
public string LastName { get; set; }
[Index(3)]
public string CustomerType { get; set; }
[Index(4)]
public string OrganizationName { get; set; }
[Index(5)]
public string SavingsAccountNumber { get; set; }
[Index(6)]
public double AmountFunded { get; set; }
[Index(7)]
public int BranchCode { get; set; }
[Index(8)]
public string CustomerAddress1 { get; set; }
[Index(9)]
public string CustomerAddress2 { get; set; }
[Index(10)]
public string CustomerCity { get; set; }
[Index(11)]
public string CustomerState { get; set; }
[Index(12)]
public string CustomerZip { get; set; }
public MissingBatchSavingsSummary TransformNewSummary(MissingBatchSavings savingsRecord, double amountFunded, string savingsAccount)
{
var result = new MissingBatchSavingsSummary()
{
CustomerNumber = savingsRecord.CustomerNumber,
CustomerType = savingsRecord.CustomerType,
FirstName = savingsRecord.FirstName,
LastName = savingsRecord.LastName,
OrganizationName = savingsRecord.OrganizationName,
CustomerAddress1 = savingsRecord.CustomerAddress1,
CustomerAddress2 = savingsRecord.CustomerAddress2,
CustomerCity = savingsRecord.CustomerCity,
CustomerState = savingsRecord.CustomerState,
CustomerZip = savingsRecord.CustomerZip,
BranchCode = savingsRecord.BranchCode,
SavingsAccountNumber = savingsAccount,
AmountFunded = amountFunded
};
return result;
}
}
@@ -0,0 +1,76 @@
using FileHelpers;
namespace LCU.Api.Internal.DataCleanUp.Models.ParserModels;
[FixedLengthRecord()]
public class NcoaRecord
{
[FieldFixedLength(20)]
[FieldTrim(TrimMode.Right)]
public string UserId { get; set; }
[FieldFixedLength(1)]
public string NcoaType { get; set; }
[FieldFixedLength(6)]
public string ChangeDate { get; set; }
[FieldFixedLength(60)]
[FieldTrim(TrimMode.Right)]
public string PrimaryName { get; set; }
[FieldFixedLength(60)]
[FieldTrim(TrimMode.Right)]
public string CurrentAddressOne { get; set; }
[FieldFixedLength(60)]
[FieldTrim(TrimMode.Right)]
public string CurrentAddressTwo { get; set; }
[FieldFixedLength(60)]
[FieldTrim(TrimMode.Right)]
public string CurrentAddressThree { get; set; }
[FieldFixedLength(60)]
[FieldTrim(TrimMode.Right)]
public string CurrentAddressFour { get; set; }
[FieldFixedLength(60)]
[FieldTrim(TrimMode.Right)]
public string CurrentAddressFive { get; set; }
[FieldFixedLength(60)]
[FieldTrim(TrimMode.Right)]
public string SecondaryName { get; set; }
[FieldFixedLength(60)]
[FieldTrim(TrimMode.Right)]
public string BusinessName { get; set; }
[FieldFixedLength(60)]
[FieldTrim(TrimMode.Right)]
public string NewAddressLine { get; set; }
[FieldFixedLength(60)]
[FieldTrim(TrimMode.Right)]
public string City { get; set; }
[FieldFixedLength(2)]
public string StateCode { get; set; }
[FieldFixedLength(5)]
[FieldTrim(TrimMode.Right)]
public string ZipCode { get; set; }
[FieldFixedLength(5)]
[FieldTrim(TrimMode.Right)]
public string ZipSuffix { get; set; }
[FieldFixedLength(70)]
[FieldTrim(TrimMode.Both)]
public string UserIdTwo { get; set; }
[FieldFixedLength(60)]
[FieldTrim(TrimMode.Right)]
public string StatementCode { get; set; }
}
@@ -0,0 +1,26 @@
using CsvHelper.Configuration.Attributes;
namespace LCU.Api.Internal.DataCleanUp.Models
{
public class PmiCancel
{
[Index(0)]
public long LoanId { get; set; }
[Index(1)]
public string MemberName { get; set; }
[Index(2)]
public string LTVCancelDate { get; set; }
[Index(3)]
public string Midpoint { get; set; }
[Index(4)]
public string LoanCompanyName { get; set; }
[Ignore]
public string CurrentStatusCode { get; set; }
[Ignore]
public string CurrentStatus { get; set; }
[Ignore]
public long PropertyNumber { get; set; }
[Ignore]
public bool IsSuccessful { get; set; }
}
}
@@ -0,0 +1,37 @@
using CsvHelper.Configuration.Attributes;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Accounts;
using LCU.Library.Internal.DataCleanUpModel.Models;
namespace LCU.Api.Internal.DataCleanUp.Models
{
public class UpdatePmiCancelSummary
{
[Index(0)]
public long LoanId { get; set; }
[Index(1)]
public string MemberName { get; set; }
[Index(2)]
public long PropertyNumber { get; set; }
[Index(3)]
public string UpdatedDate { get; set; }
[Index(4)]
public string CurrentAccountStatus { get; set; }
[Index(5)]
public string SuccessOrFailMessage { get; set; }
public UpdatePmiCancelSummary TransformNewSummary(PmiCancel pmiCancel, string message)
{
var result = new UpdatePmiCancelSummary()
{
LoanId = pmiCancel.LoanId,
MemberName = pmiCancel.MemberName,
PropertyNumber = pmiCancel.PropertyNumber,
UpdatedDate = pmiCancel.LTVCancelDate,
CurrentAccountStatus = pmiCancel.CurrentStatus,
SuccessOrFailMessage = message
};
return result;
}
}
}