1 - arquivo controle vou colocar o contexto da chamada
public async Task<IActionResult> GroupingSearch(DateTime? minDate, DateTime? maxDate)
{
if (!minDate.HasValue)
{
minDate = new DateTime(DateTime.Now.Year, 1, 1);
}
if (!maxDate.HasValue)
{
maxDate = DateTime.Now;
}
ViewData["minDate"] = minDate.Value.ToString("yyyy-MM-dd");
ViewData["maxDate"] = maxDate.Value.ToString("yyyy-MM-dd");
var result = await _salesRecordService.FindByDateGroupingAsync(minDate, maxDate);
return View(result);
}
22- arquivo do serviço só o contexto
public async Task<List<IGrouping<Department,SalesRecord>>> FindByDateGroupingAsync(DateTime? minDate, DateTime? maxDate)
{
var result = from obj in _context.SalesRecord select obj;
if (minDate.HasValue)
{
result = result.Where(x => x.Date >= minDate.Value);
}
if (maxDate.HasValue)
{
result = result.Where(x => x.Date <= maxDate.Value);
}
return await result
.Include(x => x.Seller)
.Include(x => x.Seller.Department)
.OrderByDescending(x => x.Date)
.GroupBy(x => x.Seller.Department)
.ToListAsync();
}