示例#1
0
        public bool Process(AdvanceRequest request)
        {
            Request = request;

            var requestTransaction = _dbContext.Transaction.Where(t => t.Id == request.TransactionId).ToList()?.First();

            if (requestTransaction == null)
            {
                LaunchError("RequestTransactionID Invalid");
                return(false);
            }

            if (requestTransaction.AdvanceRequests.Any(ar => !ar.AnalysisResult.Equals(AdvanceRequestStatus.Finalizada)))
            {
                LaunchError("Already open request");
                return(false);
            }

            var adiantadas = requestTransaction.AdvanceRequests.Select(ar => ar.InstallmentsAmount).Sum();

            if (request.InstallmentsAmount + adiantadas > requestTransaction.InstallmentsAmount)
            {
                LaunchError("Exceded Installments limit");
                return(false);
            }

            _dbContext.Add(request);
            _dbContext.SaveChanges();
            return(true);
        }
示例#2
0
        public bool Process(FinishRequestAnalysisModel request)
        {
            Request = _dbContext.AdvanceRequest.GetById(request.RequestId.Value).ToList().First();

            if (Request == null)
            {
                LaunchError("RequestTransactionID Invalid");
                return(false);
            }

            if (Request.Status == AdvanceRequestStatus.Finalizada)
            {
                LaunchError("Request Analysis already done");
                return(false);
            }

            if (Request.Status != AdvanceRequestStatus.EmAnalise)
            {
                LaunchError("Request Analysis yet to start");
                return(false);
            }

            Request.DoneAnalysisDate = DateTime.Now;
            Request.Status           = AdvanceRequestStatus.Finalizada;
            Request.AnalysisResult   = request.Approved;

            _dbContext.SaveChanges();
            return(true);
        }
 public AdvanceRequestJson(AdvanceRequest request)
 {
     Id                 = request.Id ?? 0;
     InitialDate        = request.InitialDate;
     InstallmentsAmount = request.InstallmentsAmount;
     TotalRequestValue  = request.TotalRequestValue;
     Status             = request.Status;
     AnalysisResult     = request.AnalysisResult;
     DoneAnalysisDate   = request.DoneAnalysisDate;
     Transaction        = new TransactionJson(request.Transaction);
 }
        public bool Process(StartRequestAnalysisModel request)
        {
            Request = _dbContext.AdvanceRequest.GetById(request.RequestId.Value).ToList().First();

            if (Request == null)
            {
                LaunchError("Request not found");
                return(false);
            }

            if (Request.Status != AdvanceRequestStatus.AguardandoAnalise)
            {
                LaunchError("Request Analysis already started");
                return(false);
            }

            Request.InitialAnalysisDate = DateTime.Now;
            Request.Status = AdvanceRequestStatus.EmAnalise;

            _dbContext.SaveChanges();
            return(true);
        }
示例#5
0
        public async Task<ActionResult<AdvanceResponse>> Advance([FromBody] AdvanceRequest request)
        {
            await _machine.AdvanceAsync(request.Steps);

            return _machine.Position.To<AdvanceResponse>();
        }