private ApprovalRegRespObj AddTempLoanApplicationSchedule(int loanApplicationId) { try { var loanApp = _dataContext.credit_loanapplication.Find(loanApplicationId); var product = _dataContext.credit_product.Find(loanApp.ApprovedProductId); var maturityDate = loanApp.EffectiveDate.AddDays(loanApp.ApprovedTenor); //var paymentDate = loanApp.FirstPrincipalDate.Value.AddDays(30); var paymentDate = loanApp.FirstPrincipalDate; LoanPaymentScheduleInputObj input = new LoanPaymentScheduleInputObj { ScheduleMethodId = (short)product.ScheduleTypeId, PrincipalAmount = (double)loanApp.ApprovedAmount, EffectiveDate = loanApp.EffectiveDate, InterestRate = loanApp.ApprovedRate, PrincipalFrequency = product.FrequencyTypeId, InterestFrequency = product.FrequencyTypeId, PrincipalFirstpaymentDate = paymentDate ?? DateTime.Now, InterestFirstpaymentDate = paymentDate ?? DateTime.Now, MaturityDate = maturityDate, AccurialBasis = 2, IntegralFeeAmount = 0, FirstDayType = 0, CreatedBy = loanApp.CreatedBy, IrregularPaymentSchedule = null }; return(new ApprovalRegRespObj { AnyIdentifier = loanApplicationId, loanPayment = input }); } catch (Exception ex) { throw ex; } }
public async Task <ActionResult <LoanScheduleRespObj> > GeneratePeriodicLoanScheduleExport([FromBody] LoanPaymentScheduleInputObj model) { try { var response = _repo.GeneratePeriodicLoanScheduleExport(model); return(new LoanScheduleRespObj { export = response, }); } catch (Exception ex) { var errorCode = ErrorID.Generate(5); _logger.Error($"ErrorID : {errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}"); return(new LoanScheduleRespObj { Status = new APIResponseStatus { IsSuccessful = false, Message = new APIResponseMessage { FriendlyMessage = "Error Occurred", TechnicalMessage = ex?.Message, MessageId = errorCode } } }); } }