Exemplo n.º 1
0
        public async Task <IActionResult> FindByDateAsync(string jsonValues)
        {
            try
            {
                SalesRecordByDateIncluding request =
                    JsonConvert.DeserializeObject <SalesRecordByDateIncluding>(jsonValues);

                var result = _context.SalesRecord.Select(p => p);

                if (request.MinDate.HasValue)
                {
                    result = result.Where(p => p.Date >= request.MinDate.Value);
                }

                if (request.MaxDate.HasValue)
                {
                    result = result.Where(p => p.Date <= request.MaxDate.Value);
                }

                foreach (var classToInclude in request.IncludeList)
                {
                    result = result.Include(classToInclude);
                }

                result = result.OrderByDescending(p => p.Date);

                if (request.GroupBySellerDepartment)
                {
                    List <MyGrouping> response =
                        await result.GroupBy(p => p.Seller.Department,
                                             (key, group) => new MyGrouping {
                        Key   = key,
                        Sales = group
                    }).ToListAsync();

                    return(Ok(response));
                }

                return(Ok(await result.ToListAsync()));
            }
            catch (System.Exception)
            {
                throw;
            }
        }
Exemplo n.º 2
0
        public async Task <IActionResult> GroupingSearch(DateTime?minDate, DateTime?maxDate)
        {
            var includeList = new List <string> {
                "Seller", "Seller.Department"
            };

            var request = new SalesRecordByDateIncluding
            {
                MinDate                 = minDate,
                MaxDate                 = maxDate,
                IncludeList             = includeList,
                GroupBySellerDepartment = true
            };

            string jsonValues = JsonConvert.SerializeObject(request);

            var result = await _webApiService.FindByDateGroupingAsync <SalesRecord>(jsonValues);

            ViewData["minDate"] = minDate?.Date.ToString("yyyy-MM-dd");
            ViewData["maxDate"] = maxDate?.Date.ToString("yyyy-MM-dd");

            return(View(result));
        }