public async Task AddPickupItemAsyncWhenPickupItemIsNull() { await this.PopulateDB(); this.DbContext.PickupItems.Add(new PickupItem() { ClientName = "first1 last1", OrderId = "order2", Name = "test1", TableNumber = 2, }); await this.DbContext.SaveChangesAsync(); var orderDish = this.DbContext.OrderDrinks.FirstOrDefault(); var model = new CookFinishItemViewModel() { DishType = FoodType.Drink, OrderId = orderDish.OrderId, FoodId = orderDish.DrinkId, }; var oldPickupItem = this.OrderDishService.GetOrderDishAsPickupItem(model.FoodId, model.OrderId); var actual = await this.PickupItemService.AddPickupItemAsync(model); var expected = this.DbContext.PickupItems .FirstOrDefault(x => x.TableNumber == oldPickupItem.TableNumber && x.OrderId == oldPickupItem.OrderId && x.ClientName == oldPickupItem.ClientName && x.Name == oldPickupItem.Name); actual.ShouldDeepEqual(expected.Id); }
public async Task AddPickupItem(CookFinishItemViewModel foodItem) { foodItem.DishType = (FoodType)Enum.Parse(typeof(FoodType), foodItem.FoodType); var pickUpItemId = await this.pickupItemService.AddPickupItemAsync(foodItem); var item = this.pickupItemService.GetPickupItemById(pickUpItemId); await this.Clients.User(item.WaiterId).SendAsync( "NewPickup", new { Id = item.Id, Count = item.Count, Name = item.Name, TableNumber = item.TableNumber, ClientName = item.ClientName } ); var cookedPerCent = this.orderService.GetOrderDeliveredPerCent(item.OrderId); if (cookedPerCent == 100) { await this.orderService.ChangeOrderStatusAsync(ProcessType.Cooking, ProcessType.Cooked, item.OrderId); var waiterId = this.orderService.GetWaiterId(item.OrderId); await this.Clients.User(waiterId).SendAsync( "UpdateTableStatus", new { ProcessType = Enum.GetName(typeof(ProcessType), ProcessType.Cooked), Id = item.OrderId, }); } await this.Clients.User(item.WaiterId).SendAsync( "NewOrderCookedPercent", new { OrderId = item.OrderId, CookedPercent = cookedPerCent } ); var user = await this.userManager.GetUserAsync(this.Context.User); var chefIds = (await this.userManager.GetUsersInRoleAsync(GlobalConstants.ChefRoleName)).Where(x => x.Id != user.Id).Select(x => x.Id).ToArray(); await this.Clients.Users(chefIds).SendAsync( "RemoveFoodToPrepare", new { OrderId = foodItem.OrderId, FoodId = foodItem.FoodId, }); }
public async Task <string> AddPickupItemAsync(CookFinishItemViewModel viewModel) { var oldPickupItem = new PickupItem(); if (viewModel.DishType == FoodType.Dish) { await this.orderDishService.AddDeliveredCountToOrderDishAsync(viewModel.OrderId, viewModel.FoodId, 1); oldPickupItem = this.orderDishService.GetOrderDishAsPickupItem(viewModel.FoodId, viewModel.OrderId); } else if (viewModel.DishType == FoodType.Drink) { await this.orderDrinkService.AddDeliveredCountToOrderDrinkAsync(viewModel.OrderId, viewModel.FoodId, 1); oldPickupItem = this.orderDrinkService.GetOrderDrinkAsPickupItem(viewModel.FoodId, viewModel.OrderId); } var pickupItem = this.pickupItemRepository .All() .FirstOrDefault(x => x.TableNumber == oldPickupItem.TableNumber && x.OrderId == oldPickupItem.OrderId && x.ClientName == oldPickupItem.ClientName && x.Name == oldPickupItem.Name); if (pickupItem != null) { pickupItem.Count++; this.pickupItemRepository.Update(pickupItem); await this.pickupItemRepository.SaveChangesAsync(); return(pickupItem.Id); } pickupItem = oldPickupItem; await this.pickupItemRepository.AddAsync(pickupItem); await this.pickupItemRepository.SaveChangesAsync(); return(pickupItem.Id); }
public async Task AddPickupItemAsyncWithDishWorksCorrectly() { await this.PopulateDB(); var orderDish = this.DbContext.OrderDishes.FirstOrDefault(); var model = new CookFinishItemViewModel() { DishType = FoodType.Dish, OrderId = orderDish.OrderId, FoodId = orderDish.DishId, }; var oldPickupItem = this.OrderDishService.GetOrderDishAsPickupItem(model.FoodId, model.OrderId); var actual = await this.PickupItemService.AddPickupItemAsync(model); var expected = this.DbContext.PickupItems .FirstOrDefault(x => x.TableNumber == oldPickupItem.TableNumber && x.OrderId == oldPickupItem.OrderId && x.ClientName == oldPickupItem.ClientName && x.Name == oldPickupItem.Name); actual.ShouldDeepEqual(expected.Id); }
public async Task <ActionResult <bool> > FinishOne(CookFinishItemViewModel foodItem) { foodItem.DishType = (FoodType)Enum.Parse(typeof(FoodType), foodItem.FoodType); return(await this.pickupItemService.AddPickupItemAsync(foodItem) != null); }