public async Task <SalesFilteredResponse <object> > GetAllSales(BaseSearchRequestModel request) { try { var csvSales = _context.CSVSales .OrderBy(x => x.OrderDate) .AsNoTracking(); return(await GetSearchDDLModel.ReturnSales(_context, csvSales, request)); } catch (Exception ex) { throw ex; } }
public static IQueryable <T> Paginate <T>(this IQueryable <T> query, BaseSearchRequestModel request) { try { if (request.Start.HasValue) { query = query.Skip(request.Start.Value); } if (request.Limit.HasValue) { query = query.Take(request.Limit.Value); } return(query); } catch (Exception e) { throw new Exception("Was an exception in Paginate", e); } }
//GET : /api/Users/GetAllSales public async Task <ActionResult <IEnumerable <object> > > GetAllAsync([FromQuery] BaseSearchRequestModel request) { var getAllSales = new GetAllSalesQuery(_context); return(Ok(await Task.Run(() => getAllSales.GetAllSales(request)))); }
public static async Task <SalesFilteredResponse <object> > ReturnSales(ApplicationDbContext _context, IQueryable <CSVSale> csvSales, BaseSearchRequestModel request) { try { var totalCount = await csvSales.LongCountAsync(); var countrys = await _context .Countrys.Select(p => p.Value) .Distinct() .ToListAsync(); var itemTypes = await _context .ItemTypes.Select(p => p.Value) .Distinct() .ToListAsync(); var regions = await _context .Regions.Select(p => p.Value) .Distinct() .ToListAsync(); var salesChannels = await _context .SalesChannels.Select(p => p.Value) .Distinct() .ToListAsync(); if (csvSales == null || totalCount == 0) { return(new SalesFilteredResponse <object>()); } var paginatedCSVSales = await csvSales .Paginate(request) .ToListAsync(); return(new SalesFilteredResponse <object> { Total = totalCount, Length = paginatedCSVSales.Count, Data = paginatedCSVSales, DropDownLists = new DropDownLists() { CountryList = countrys, ItemTypeList = itemTypes, RegionList = regions, SalesChannelList = salesChannels } }); } catch (Exception ex) { throw ex; } }