public async Task <MenuItemDto> GetAsync(int menuItemId) { using (UnitOfWorkProvider.Create()) { return(await _menuItemService.GetAsync(menuItemId, false)); } }
public async Task <List <OrderWithFullDependencyDto> > GetAllOrdersWithDependencies(String employeeEmail) { List <OrderWithFullDependencyDto> result = new List <OrderWithFullDependencyDto>(); List <OrderDto> orders = new List <OrderDto>(); using (UnitOfWorkProvider.Create()) { int companyId = (await _employeeService.GetEmployeeByEmail(employeeEmail)).CompanyId; orders = await _orderService.GetOrderOfCompany(companyId); } Dictionary <int, MenuItemDto> menuItems = new Dictionary <int, MenuItemDto>(); foreach (var o in orders) { using (UnitOfWorkProvider.Create()) { OrderWithFullDependencyDto order = new OrderWithFullDependencyDto { Id = o.Id, OrderStartTime = o.OrderStartTime, CompanyId = o.CompanyId, OrderTable = o.OrderTable, IsClosed = o.IsClosed, Items = new List <OrderItemWithMenuItemDto>() }; var items = await _orderItemService.GetWithMenuItemByOrderId(order.Id); order.Items.AddRange(items); result.Add(order); } } result.ForEach(o => o.Items.ForEach(i => { if (!menuItems.ContainsKey(i.MenuItemId)) { menuItems.Add(i.MenuItemId, null); } })); foreach (var menuItemId in menuItems.Keys.ToList()) { using (UnitOfWorkProvider.Create()) { menuItems[menuItemId] = await _menuItemService.GetAsync(menuItemId, false); } } result.ForEach(o => o.Items.ForEach(i => i.MenuItem = menuItems[i.MenuItemId])); return(result); }