예제 #1
0
        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;
        }
예제 #2
0
 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");
 }