This commit is contained in:
Zeeshaun
2026-03-17 09:53:09 -05:00
parent cdcba54aa4
commit 1a0702a79a
590 changed files with 62058 additions and 0 deletions
@@ -0,0 +1,81 @@
using CsvHelper.Configuration.Attributes;
using LCU.Library.Internal.IncentiveApiModels.Enums;
namespace LCU.API.Internal.Operations.IncentiveApi.Models.Allied;
public class AlliedSaleRow
{
[Name("Quoter")]
public string Quoter { get; set; }
[Name("Issuer")]
public string Issuer { get; set; }
[Name("Origin")]
public string Origin { get; set; }
[Name("Product_Type")]
public string ProductType { get; set; }
[Name("Status")]
public string Status { get; set; }
[Name("Sale_Date")]
public string SaleDate { get; set; }
[Name("Sale_Effective_Date")]
public string SaleEffectiveDate { get; set; }
[Name("Cancellation_Date")]
public string CancellationDate { get; set; }
[Name("Cancellation_Reason")]
public string CancellationReason { get; set; }
[Name("Cancelled_By")]
public string CancelledBy { get; set; }
[Name("Sales_Contract_Number")]
public string SalesContractNumber { get; set; }
[Name("Buyer")]
public string Buyer { get; set; }
[Name("Account_Number")]
public string AccountNumber { get; set; }
[Name("LOS_LOAN_APP_ID_TX")]
public string LosLoanAppIdTx { get; set; }
[Name("Program_Type")]
public string ProgramType { get; set; }
[Name("Buyer_Cost")]
public string BuyerCost { get; set; }
[Name("Flagged_Reasons")]
public string FlaggedReasons { get; set; }
public string DetermineAccountNumber()
{
var accountNumber = "";
if (!string.IsNullOrEmpty(AccountNumber))
{
accountNumber = AccountNumber;
}
else
{
accountNumber = SalesContractNumber ?? "";
}
if (accountNumber.Contains("-"))
{
var transform = accountNumber.Split("-");
if (transform?.Length == 2)
{
return transform[0].Trim();
}
}
return accountNumber;
}
public Product DetermineAlliedProduct()
{
if (string.Equals(ProductType.Trim(), "mbp", StringComparison.CurrentCultureIgnoreCase))
{
return Product.MechanicalBreakdownProtection;
}
if (string.Equals(ProductType.Trim(), "gap", StringComparison.CurrentCultureIgnoreCase))
{
return Product.GAPInsurance;
}
throw new Exception($"Allied should only pass MBP or GAP for product, but received {ProductType}");
}
}