Exemplo n.º 1
0
        public async Task <ActionResult <LoanRespObj> > EndOfDayOperation([FromBody] EndOfDayRequestObj model)
        {
            try
            {
                var now  = DateTime.Now;
                var res1 = _repo.ProcessDailyLoansInterestAccrual(model.RequestDate);
                var res2 = _repo.ProcessLoanRepaymentPostingPastDue(model.RequestDate);
                var res3 = _repo.ProcessDailyPastDueInterestAccrual(model.RequestDate);
                var res4 = _repo.ProcessDailyPastDuePrincipalAccrual(model.RequestDate);
                var res5 = _invest.ProcessMaturedInvestmentPosting(model.RequestDate);
                var res6 = _invest.ProcessDailyInvestmentInterestAccrual(model.RequestDate);
                _invest.ProcessRollOverPosting(model.RequestDate);
                _repo.updateHistoricalLoanBalance();

                await _context.SaveChangesAsync();

                return(Ok(new LoanRespObj
                {
                    Status = new APIResponseStatus {
                        IsSuccessful = true, Message = new APIResponseMessage {
                            FriendlyMessage = "Successful"
                        }
                    }
                }));
            }
            catch (Exception ex)
            {
                var errorCode = ErrorID.Generate(5);
                _logger.Error($"ErrorID : {errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}");
                return(new LoanRespObj
                {
                    Status = new APIResponseStatus {
                        IsSuccessful = false, Message = new APIResponseMessage {
                            FriendlyMessage = "Error Occurred", TechnicalMessage = ex?.Message, MessageId = errorCode
                        }
                    }
                });
            }
        }