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); }
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); }
public async Task<ActionResult<AdvanceResponse>> Advance([FromBody] AdvanceRequest request) { await _machine.AdvanceAsync(request.Steps); return _machine.Position.To<AdvanceResponse>(); }