public void TestLoanLegals() { //NL_Loans l = new NL_Loans(); //l.InterestRate = 3.5m; //l.IssuedTime = DateTime.UtcNow; //l.CreationTime = DateTime.UtcNow; //l.LoanSourceID = 1; //l.LoanStatusID = 2; //l.Position = 1; //var sss = l.ToString(); //Console.WriteLine(sss); NL_LoanLegals loanLegals = new NL_LoanLegals { Amount = 20000m, RepaymentPeriod = 5, SignatureTime = DateTime.UtcNow, EUAgreementAgreed = true, COSMEAgreementAgreed = true, CreditActAgreementAgreed = true, PreContractAgreementAgreed = false, PrivateCompanyLoanAgreementAgreed = true, GuarantyAgreementAgreed = false, SignedName = "elina roytman", NotInBankruptcy = false }; var s = loanLegals.ToString(); Console.WriteLine(s); }
} // AddOffer public NLLongActionResult AddLoanLegals(int userID, int customerID, NL_LoanLegals loanLegals) { AddLoanLegals s = new AddLoanLegals(customerID, loanLegals); s.Context.UserID = userID; s.Context.CustomerID = customerID; var amd = ExecuteSync(out s, customerID, userID, customerID, loanLegals); return(new NLLongActionResult { MetaData = amd, Value = s.LoanLegalsID, Error = s.Error }); } // AddLoanLegals
public JsonResult LoanLegalSigned(FormCollection collection) { decimal loanAmount = Convert.ToDecimal(collection["loanAmount"]); int repaymentPeriod = Convert.ToInt32(collection["repaymentPeriod"]); string signedName = collection["signedName"]; bool notInBankruptcy = Convert.ToBoolean(collection["notInBankruptcy"]); bool euAgreementTermsRead = Convert.ToBoolean(collection["euAgreementTermsRead"]); bool cosmeAgreementTermsRead = Convert.ToBoolean(collection["cosmeAgreementTermsRead"]); decimal manualSetupFeePercent = Convert.ToDecimal(collection["manualSetupFeePercent"]); decimal brokerFeePercent = Convert.ToDecimal(collection["brokerFeePercent"]); var dynamicLoanAgreements = new Dictionary <LegalDocsEnums.LoanAgreementTemplateType, bool>(); foreach (var loanAgreementTemplateName in Enum.GetNames(typeof(LegalDocsEnums.LoanAgreementTemplateType))) { var key = loanAgreementTemplateName + "TermsRead"; if (collection.AllKeys.Contains(key)) { var value = Convert.ToBoolean(collection[key]); dynamicLoanAgreements.Add( (LegalDocsEnums.LoanAgreementTemplateType)Enum.Parse( typeof(LegalDocsEnums.LoanAgreementTemplateType), loanAgreementTemplateName ), value ); } // if } // for each var dynamicLoanAgreementsStringified = new JavaScriptSerializer().Serialize( dynamicLoanAgreements.ToDictionary(x => x.Key.DescriptionAttr(), x => x.Value.ToString()) ); log.DebugFormat( "LoanLegalModel - " + "dynamicLoanAgreementsStringified : {0}" + "euAgreementTermsRead: {1}" + "cosmeAgreementTermsRead: {2}", dynamicLoanAgreementsStringified, euAgreementTermsRead, cosmeAgreementTermsRead ); var cashRequest = this.context.Customer.LastCashRequest; var typeOfBusiness = this.context.Customer.PersonalInfo.TypeOfBusiness.AgreementReduce(); // Dynamic agreements validation foreach (var dynamicLoanAgreement in dynamicLoanAgreements) { if (dynamicLoanAgreement.Value != true) { return(Json(new { error = string.Format("You must agree on {0} agreement", dynamicLoanAgreement.Key.DescriptionAttr()) })); } // if } // for each var personalInfo = cashRequest.Customer.PersonalInfo; if (personalInfo == null) { return(Json(new { error = "sign name supplied is incorrect" })); } // Customer name validation const string separator = " "; var FN = (personalInfo.FirstName != null) ? personalInfo.FirstName.ToLower() : string.Empty; var MN = (personalInfo.MiddleInitial != null) ? personalInfo.MiddleInitial.ToLower() : String.Empty; var LN = (personalInfo.Surname != null) ? personalInfo.Surname.ToLower() : string.Empty; List <String> nameCombinations = new List <string> { string.Format("{0}{3}{1}{3}{2}", FN, MN, LN, separator).Replace(separator + separator, separator), string.Format("{0}{3}{2}{3}{1}", FN, MN, LN, separator).Replace(separator + separator, separator), string.Format("{1}{3}{0}{3}{2}", FN, MN, LN, separator).Replace(separator + separator, separator), string.Format("{1}{3}{2}{3}{0}", FN, MN, LN, separator).Replace(separator + separator, separator), string.Format("{2}{3}{0}{3}{1}", FN, MN, LN, separator).Replace(separator + separator, separator), string.Format("{2}{3}{1}{3}{0}", FN, MN, LN, separator).Replace(separator + separator, separator), string.Format("{0}{2}{1}", FN, MN, separator), string.Format("{1}{2}{0}", FN, MN, separator), }; if (signedName == null) { signedName = string.Empty; } if (!nameCombinations.Contains(signedName.ToLower())) { return(Json(new { error = "sign name supplied is incorrect" })); } bool somethingIsMissing = ((cashRequest.LoanSource.Name == LoanSourceName.EU.ToString()) && !euAgreementTermsRead) || ((cashRequest.LoanSource.Name == LoanSourceName.COSME.ToString()) && !cosmeAgreementTermsRead) || !notInBankruptcy; if (somethingIsMissing) { return(Json(new { error = "You must agree to all agreements." })); } var productSubTypeID = cashRequest.ProductSubTypeID; var originId = cashRequest.Customer.CustomerOrigin.CustomerOriginID; var isRegulated = cashRequest.Customer.PersonalInfo.TypeOfBusiness.IsRegulated(); var requiredlegalDocsTemplates = this.serviceClient.Instance.GetLegalDocs( cashRequest.Customer.Id, this.context.UserId, originId, isRegulated, productSubTypeID ?? 0 ).LoanAgreementTemplates.Select(x => x.TemplateTypeID); // Validate sign on the right agreements foreach (var requiredlegalDocTemplate in requiredlegalDocsTemplates) { if (!dynamicLoanAgreements.ContainsKey((LegalDocsEnums.LoanAgreementTemplateType)requiredlegalDocTemplate)) { return(Json(new { error = "You must agree to all agreements." })); } } // foreach DateTime now = DateTime.UtcNow; this.context.Customer.LastCashRequest.LoanLegals.Add(new LoanLegal { CashRequest = cashRequest, Created = now, EUAgreementAgreed = euAgreementTermsRead, COSMEAgreementAgreed = cosmeAgreementTermsRead, CreditActAgreementAgreed = typeOfBusiness == TypeOfBusinessAgreementReduced.Personal, PreContractAgreementAgreed = typeOfBusiness == TypeOfBusinessAgreementReduced.Personal, PrivateCompanyLoanAgreementAgreed = typeOfBusiness == TypeOfBusinessAgreementReduced.Business, GuarantyAgreementAgreed = typeOfBusiness == TypeOfBusinessAgreementReduced.Business, SignedName = signedName, NotInBankruptcy = notInBankruptcy, SignedLegalDocs = dynamicLoanAgreementsStringified, ManualSetupFeePercent = manualSetupFeePercent, BrokerSetupFeePercent = brokerFeePercent, }); NL_LoanLegals nlLoanLegals = new NL_LoanLegals { Amount = loanAmount, RepaymentPeriod = repaymentPeriod, SignatureTime = now, EUAgreementAgreed = euAgreementTermsRead, COSMEAgreementAgreed = cosmeAgreementTermsRead, CreditActAgreementAgreed = typeOfBusiness == TypeOfBusinessAgreementReduced.Personal, PreContractAgreementAgreed = typeOfBusiness == TypeOfBusinessAgreementReduced.Personal, PrivateCompanyLoanAgreementAgreed = typeOfBusiness == TypeOfBusinessAgreementReduced.Business, GuarantyAgreementAgreed = typeOfBusiness == TypeOfBusinessAgreementReduced.Business, SignedName = signedName, NotInBankruptcy = notInBankruptcy, SignedLegalDocs = dynamicLoanAgreementsStringified, BrokerSetupFeePercent = brokerFeePercent, }; var nlStrategyLegals = this.serviceClient.Instance.AddLoanLegals( this.context.UserId, this.context.Customer.Id, nlLoanLegals ); //_log.Debug("NL_LoanLegals: ID {0}, Error: {1}", nlStrategyLegals.Value, nlStrategyLegals.Error); return(Json(new { })); } // LoanLegalSigned
public AddLoanLegals(int customerID, NL_LoanLegals loanLegals) { this.customerID = customerID; this.loanLegals = loanLegals; } //constructor