private IQueryable<FoodOrder> GetFoodOrderList(FoodOrderQuery query) { query = query ?? new FoodOrderQuery(); IQueryable<FoodOrder> data = DbContext.FoodOrders .Include(x => x.FoodMenu) .Include(x => x.Location) .Include(x => x.Taste) .Include(x => x.Payment) .Include(x => x.OrderUser); if (query.StartTime != null) { var start = query.StartTime.Value.Date; var end = start.AddDays(1); if (query.EndTime != null) end = query.EndTime.Value.Date.AddDays(1); data = data.Where(x => x.OrderTime >= start && x.OrderTime < end); } if (!string.IsNullOrWhiteSpace(query.UserName)) { data = data.Where(x => x.OrderUser.UserName.StartsWith(query.UserName)); } data = data.OrderByDescending(x => x.OrderTime); return data; }
public async Task<FileStreamResult> Export(FoodOrderQuery query) { var data = await GetFoodOrderList(query) .OrderBy(x => x.TasteId) .ThenBy(x => x.LocationId) .ToListAsync(); IEnumerable<FoodOrderExcelDto> list = FoodOrderExcelDto.FromEntities(data); return ExcelFile( ExcelManager.ExportToStream(list), $"{DateTime.Now.ToString("yyyy-MM-dd")}.xlsx"); }