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 <IActionResult> GetCommissionsList([FromBody] GetCommissionsListRequest req)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            repository.SetTimeout(120);

            PortalUser user = await repository.AuthenticateUserToken(req.CurrentUser.UserId, req.CurrentUser.UserToken);

            if (user == null)
            {
                return(NotFound());
            }

            var invoiceList = (await repository.GetInvoicesByDriverId(req.DriverId)).Where(x => x.CompanyId == user.CompanyId).ToList();

            GetInvoiceListResponse resp = new GetInvoiceListResponse()
            {
                Invoices = invoiceList.Select(x => paymentWorkflow.LoadInvoice(x)).ToList()
            };

            return(Ok(resp));
        }