first commit
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
using Landmark.OLA.Models.Loan.Enums;
|
||||
|
||||
namespace Landmark.OLA.Models.Loan
|
||||
{
|
||||
|
||||
public static class LoanPurpose
|
||||
{
|
||||
//Acceptable values taken from CRIF database
|
||||
/*
|
||||
select p.shortname, p.name, p.productid, lp.name, lp.[description],
|
||||
lp.loanpurposeid, lp.isactivefl from v_RptProduct_v001 as p
|
||||
inner join v_RptProductLoanPurpose_v001 as plp
|
||||
on plp.productid = p.productid
|
||||
inner join v_RptLoanPurpose_v001 as lp
|
||||
on lp.loanpurposeid = plp.loanpurposeid
|
||||
order by p.productid
|
||||
*/
|
||||
private static readonly List<Purpose> _ccPurposes = new List<Purpose>
|
||||
{ Purpose.Other, Purpose.Consolidation, Purpose.Reestablish_Credit};
|
||||
|
||||
private static readonly List<Purpose> _eqPurposes = new List<Purpose>
|
||||
{ Purpose.Home_Improvement, Purpose.Home_Purchase, Purpose.Home_Refinance,
|
||||
Purpose.Other, Purpose.Cash_Out_Refinance };
|
||||
|
||||
private static readonly List<Purpose> _mfgHomePurposes = new List<Purpose>
|
||||
{ Purpose.Home_Improvement, Purpose.Purchase_Manufactured_Home, Purpose.Home_Refinance,
|
||||
Purpose.Other, Purpose.Cash_Out_Refinance };
|
||||
|
||||
private static readonly List<Purpose> _vPurposes = new List<Purpose>
|
||||
{ Purpose.Purchase, Purpose.Cash_Out_Refinance, Purpose.Refinance_Vehicle };
|
||||
|
||||
private static readonly List<Purpose> _mPurposes = new List<Purpose>
|
||||
{ Purpose.Purchase, Purpose.Refinance_Vehicle };
|
||||
|
||||
private static readonly List<Purpose> _pPurposes = new List<Purpose>
|
||||
{ Purpose.Purchase, Purpose.Refinance_Vehicle };
|
||||
|
||||
private static readonly List<Purpose> _tPurposes = new List<Purpose>
|
||||
{ Purpose.Purchase, Purpose.Refinance_Vehicle };
|
||||
|
||||
private static readonly List<Purpose> _sPurposes = new List<Purpose>
|
||||
{ Purpose.Other, Purpose.Consolidation};
|
||||
|
||||
|
||||
public static Dictionary<LoanType, List<Purpose>> TypePurposes => new Dictionary<LoanType, List<Purpose>>
|
||||
{
|
||||
{ LoanType.CC_CashBack, _ccPurposes },
|
||||
{ LoanType.CC_Rewards, _ccPurposes },
|
||||
{ LoanType.CC_Student, _ccPurposes },
|
||||
{ LoanType.CC_Secure, _ccPurposes },
|
||||
{ LoanType.EQ_HELOC_Flex, _eqPurposes },
|
||||
{ LoanType.EQ_Mtg_Refi_Express, _eqPurposes },
|
||||
{ LoanType.EQ_Home_Equity_Fixed, _eqPurposes },
|
||||
{ LoanType.EQ_Mfg_Home_With_or_Without_Land, _mfgHomePurposes },
|
||||
{ LoanType.V_Vehicle, _vPurposes },
|
||||
{ LoanType.V_VehiclePreapproval, _vPurposes },
|
||||
{ LoanType.M_Boat, _mPurposes },
|
||||
{ LoanType.P_Powersport, _pPurposes },
|
||||
{ LoanType.T_TrailerMotorhome, _tPurposes },
|
||||
{ LoanType.S_Signature, _sPurposes },
|
||||
{ LoanType.S_Special, _sPurposes },
|
||||
};
|
||||
|
||||
public static bool IsValidPurposeForType(LoanType? type, Purpose? purpose)
|
||||
{
|
||||
if (!type.HasValue)
|
||||
throw new ArgumentException("LoanType cannot be null");
|
||||
|
||||
if (!purpose.HasValue)
|
||||
throw new ArgumentException("Purpose cannot be null");
|
||||
|
||||
return IsValidPurposeForType(type.Value, purpose.Value);
|
||||
}
|
||||
|
||||
public static bool IsValidPurposeForType(LoanType type, Purpose purpose)
|
||||
{
|
||||
return TypePurposes[type].Contains(purpose);
|
||||
}
|
||||
|
||||
|
||||
//Enum names and values based on CRIF's v_RptProductLoanPurpose_v001 table
|
||||
//joined with v_RptProductLoanPurpose_v001
|
||||
//to find purposes that are active and in use
|
||||
/*
|
||||
select distinct lp.loanpurposeid, lp.name,lp.[description]
|
||||
from v_RptLoanPurpose_v001 as lp
|
||||
inner join v_RptProductLoanPurpose_v001 as plp
|
||||
on lp.loanpurposeid = plp.loanpurposeid
|
||||
where isactivefl = 1
|
||||
*/
|
||||
public enum Purpose
|
||||
{
|
||||
Home_Improvement = 3,
|
||||
Home_Purchase = 4,
|
||||
Home_Refinance = 5,
|
||||
Purchase_Boat = 8,
|
||||
Purchase = 12,
|
||||
Other = 149,
|
||||
Refinance = 141,
|
||||
Dental_Expense = 142,
|
||||
Medical_Expense = 143,
|
||||
Cash_Out_Refinance = 144,
|
||||
Refinance_Vehicle = 146,
|
||||
Consolidation = 148,
|
||||
Reestablish_Credit = 150,
|
||||
Purchase_Manufactured_Home = 151,
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user