public async Task <IActionResult> GetInvoiceList([FromBody] GetInvoiceListRequest req) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } repository.SetTimeout(120); PortalUser user = await repository.AuthenticateUserToken(req.CurrentUser.UserId, req.CurrentUser.UserToken); if (user == null || req.VendorId == null) { return(NotFound()); } var invoiceList = await repository.GetInvoicesByManufacturerId((int)req.VendorId, user.CompanyId); GetInvoiceListResponse resp = new GetInvoiceListResponse(); resp.Invoices = invoiceList.Where(x => x.TransactionStatusTypeId == (int)TransactionStatusType.Enum.Open).Select(x => paymentWorkflow.LoadInvoice(x)).ToList(); resp.TotalVendors = resp.Invoices.Select(x => x.VendorId).Distinct().Count(); resp.TotalOutstandingBalance = resp.Invoices.Select(x => x.ManufacturerRate).Sum(); resp.CompletionPercentage = await repository.GetInvoiceAcknowledgedProgressPercent(); return(Ok(resp)); }
public async Task <Response <List <InvoiceResponse> > > GetList(GetInvoiceListRequest request) { var query = _mapper.Map <GetInvoiceListQuery>(request); var result = _invoiceRepository.GetList(query); var data = _mapper.Map <List <Expenses.Domain.Models.Invoice>, List <InvoiceResponse> >(result); return(SuccessfulResponse(data)); }
public async Task <IActionResult> GetList([FromQuery] GetInvoiceListRequest query) { var result = await _invoiceService.GetList(query); if (result.Successful) { return(SuccessResponse(result)); } else { return(FailureResponse(result)); } }