public async Task <ActionResult <PageResult <InvoiceModel> > > GetPaging([FromQuery] GetInvoicePageModel request) { return(Ok(await _invoiceService.GetPaging(await GetUserId(), request, GetPermissionId()))); }
public async Task <TResponse <PageResult <InvoiceModel> > > GetPaging(int userId, GetInvoicePageModel request, int permissionId) { try { var checkValid = await _userService.CheckPermission(userId, permissionId); if (checkValid.IsSuccess) { var page = request.Page; if (page <= 1) { page = 1; } var pageSize = request.PageSize; if (pageSize <= 0) { pageSize = 20; } var result = await ReadOnlyRepository.QueryMultipleLFAsync <InvoiceModel, int>( SqlQuery.INVOICE_GET_BY_PAGING, new { CustomerName = $"%{request.Customer}%", CustomerPhone = $"%{request.CustomerPhone}%", CustomerCode = $"%{request.CustomerCode}%", Code = $"%{request.Code}%", request.BranchId, request.InvoiceStatusId, request.UserSellId, request.UserCreatedId, request.FromDate, request.ToDate, Skip = (page - 1) * pageSize, Take = pageSize }); if (result.IsSuccess) { if (result.Data.Item1 != null && result.Data.Item1.Any()) { var count = result.Data.Item2; var invoices = result.Data.Item1.ToList(); foreach (var invoice in invoices) { var products = await ReadOnlyRepository.QueryAsync <string>( SqlQuery.INVOICE_GET_PRODUCT_BY_INVOICE_ID, new { InvoiceId = invoice.Id }); if (products.IsSuccess && products.Data != null) { invoice.Products.AddRange(products.Data); } var users = await ReadOnlyRepository.QueryAsync <string>( SqlQuery.INVOICE_GET_USER_DELIVERY_BY_INVOICE_ID, new { InvoiceId = invoice.Id }); if (users.IsSuccess && users.Data != null) { invoice.UserDelivery.AddRange(users.Data); } } return(await Ok(new PageResult <InvoiceModel>(page, pageSize, result.Data.Item2, result.Data.Item1))); } return(await Ok(new PageResult <InvoiceModel>(page, pageSize, result.Data.Item2, new List <InvoiceModel>()))); } return(await Fail <PageResult <InvoiceModel> >(result.Message)); } return(await Fail <PageResult <InvoiceModel> >(checkValid.Message)); } catch (Exception exception) { return(await Fail <PageResult <InvoiceModel> >(exception)); } }