Beispiel #1
0
        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);
            }
        }
Beispiel #3
0
        //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;
            }
        }