public static string ExportOrdersByEmployee(FastFoodDbContext context, string employeeName, string orderType) { var sb = new StringBuilder(); var type = Enum.Parse <OrderType>(orderType); var employeeee = context.Employees .Include(e => e.Orders) .ThenInclude(o => o.OrderItems) .Where(e => e.Name == employeeName).ToArray(); EmployeeDto emp = new EmployeeDto(); emp.Name = employeeee[0].Name; foreach (var order in employeeee[0].Orders.Where(o => o.Type == type)) { var orderDto = new OrderDto() { Customer = order.Customer }; foreach (var item in order.OrderItems) { var itemDto = new ItemDto() { Name = item.Item.Name, Price = item.Item.Price, Quantity = item.Quantity }; orderDto.Items.Add(itemDto); } emp.Orders.Add(orderDto); } var result = emp.Orders.OrderByDescending(o => o.TotalPrice).ThenBy(o => o.Items.Count); //.Select(e=> new //{ // Name = e.Name, // EmployeeId = e.Id, // Orders = context.Orders // .Where(o=>o.Type==type&& o.EmployeeId==e.Id) // .Select(o=> new // { // Customer = o.Customer, // Items = context.OrderItems.Where(oi=>oi.ItemId==o.Id) // .Select(oi=> new // { // Name = context.Items.Where(i=>i.Id== oi.ItemId).Select(i=>i.Name), // Price = context.Items.Where(i => i.Id == oi.ItemId).Select(i => i.Price), // }).ToArray() // }).ToArray() //}).ToArray(); var json = JsonConvert.SerializeObject(result, Formatting.Indented); return(json); }
public static string ExportOrdersByEmployee(FastFoodDbContext context, string employeeName, string orderType) { var employees = context.Employees.Include(e => e.Orders).ThenInclude(e => e.OrderItems).ThenInclude(e => e.Item); var employee = employees.FirstOrDefault(e => e.Name == employeeName); var orders = employee.Orders.Where(e => e.Type == Enum.Parse<OrderType>(orderType)).ToList(); var validOrderds = new List<OrderDto>(); foreach (var order in orders) { decimal totalPrice = 0; var validItems = new List<ItemDto>(); foreach (var item in order.OrderItems) { var name = item.Item.Name; var price = item.Item.Price; var quantity = item.Quantity; var itemDto = new ItemDto() { Name = name, Price = price, Quantity = quantity }; totalPrice += item.Item.Price * item.Quantity; validItems.Add(itemDto); } var orderDto = new OrderDto() { Customer = order.Customer, TotalPrice = totalPrice, Items = validItems }; validOrderds.Add(orderDto); } var result = new EmployeeOrderDto() { Name = employee.Name, Orders = validOrderds.OrderByDescending(e=>e.TotalPrice).ThenByDescending(e => e.Items.Count).ToList(), TotalMade = validOrderds.Sum(e => e.TotalPrice) }; //var orderedResult = result.Orders.OrderByDescending(e => e.TotalPrice).ThenByDescending(e => e.Items.Count).ToList(); var json = JsonConvert.SerializeObject(result,Formatting.Indented); return json; }
private static Category FindOrCreateCategory(FastFoodDbContext context, ItemDto itemDto) { var category = context.Categories.SingleOrDefault(c => c.Name == itemDto.Category); if (category == null) { var categ = new Category { Name = itemDto.Category }; context.Categories.Add(categ); context.SaveChanges(); } return(category); }
private static Category GetCategory(FastFoodDbContext context, ItemDto itemDto) { var searchedCategory = context.Categories.FirstOrDefault(c => c.Name == itemDto.Category); if (searchedCategory == null) { var category = new Category { Name = itemDto.Category }; context.Categories.Add(category); context.SaveChanges(); searchedCategory = category; } return(searchedCategory); }