public ListResponse<UserDTO> UpdateOrRemoveUser(UpdateOrRemoveRequest<List<UserDTO>> request) { if (request.Data == null && request.DataToRemove == null) throw PizzaServiceFault.Create(Messages.NO_DATA); using (var db = new PizzaUnitOfWork()) { return db.inTransaction(uow => { if (!HasRights(GetUser(request).Data, 3)) throw PizzaServiceFault.Create(Messages.NO_PERMISSIONS); if (request.Data != null) { foreach (var userDto in request.Data) { User user = uow.Db.Users.Get(userDto.UserID); if (user != null) { userAssembler.UpdateEntity(user, userDto); uow.Db.Users.Update(user); } else { user = userAssembler.ToUser(userDto); uow.Db.Users.Insert(user); } } } if (request.DataToRemove != null) { foreach (var userDto in request.DataToRemove) { User user = uow.Db.Users.Get(userDto.UserID); if (user != null) uow.Db.Users.Delete(user); } } uow.Db.Commit(); return ListResponse.Create(uow.Db.Users.FindAll().ToList().Select(userAssembler.ToSimpleDto) .ToList()); }); } }
public ListResponse<StockIngredientDTO> UpdateOrRemoveIngredient(UpdateOrRemoveRequest<List<StockIngredientDTO>> request) { if (request.Data == null && request.DataToRemove == null) throw PizzaServiceFault.Create(Messages.NO_DATA); using (var db = new PizzaUnitOfWork()) { return db.inTransaction(uof => { if (!HasRights(GetUser(request).Data, 2)) throw PizzaServiceFault.Create(Messages.NO_PERMISSIONS); if (request.Data != null) { foreach (var stockItem in request.Data) { Ingredient ing = uof.Db.Ingredients.Get(stockItem.IngredientID); if (ing != null) ingAssembler.UpdateIngredient(ing, stockItem); else uof.Db.Ingredients.Insert(ingAssembler.ToEntityWithEmptyRecipies(stockItem)); } } if (request.DataToRemove != null) { foreach (var stockItem in request.DataToRemove) { Ingredient ing = uof.Db.Ingredients.Get(stockItem.IngredientID); if (ing != null) uof.Db.Ingredients.Delete(ing); } } uof.Db.Commit(); return ListResponse.Create(uof.Db.Ingredients.FindAll().ToList() .Select(ingAssembler.ToSimpleDto) .ToList()); }); } }
public TrioResponse<List<RecipeDTO>, List<OrderIngredientDTO>, int> UpdateOrRemoveRecipe(UpdateOrRemoveRequest<List<RecipeDTO>> request) { if (request.Data == null && request.DataToRemove == null) throw PizzaServiceFault.Create(Messages.NO_DATA); using (var db = new PizzaUnitOfWork()) { return db.inTransaction(uof => { if (!HasRights(GetUser(request).Data, 2)) throw PizzaServiceFault.Create(Messages.NO_PERMISSIONS); if (request.Data != null) { foreach (var recipe in request.Data) { Recipe rec = uof.Db.Recipies.Get(recipe.RecipeID); if (rec != null) { rec.Name = recipe.Name; int j; for (int i = 0; i < rec.Ingredients.Count; i++) { Ingredient ingredient = rec.Ingredients.ElementAt(i); for (j = 0; j < recipe.Ingredients.Count; j++) { if (ingredient.IngredientID == recipe.Ingredients[j].IngredientID) break; } if (j == recipe.Ingredients.Count) { rec.Ingredients.Remove(ingredient); } } foreach (var ing in recipe.Ingredients) { Ingredient ingredient = uof.Db.Ingredients.Get(ing.IngredientID); if (ingredient == null) { db.RequestRollback = true; throw PizzaServiceFault.Create(Messages.INGS_LIST_OUT_OF_DATE); } rec.Ingredients.Add(ingredient); } uof.Db.Recipies.Update(rec); } else { rec = new Recipe { Name = recipe.Name }; rec.Ingredients = new List<Ingredient>(); foreach (var ing in recipe.Ingredients) { Ingredient ingredient = uof.Db.Ingredients.Get(ing.IngredientID); if (ingredient == null) { db.RequestRollback = true; throw PizzaServiceFault.Create(Messages.INGS_LIST_OUT_OF_DATE); } rec.Ingredients.Add(ingredient); } uof.Db.Recipies.Insert(rec); } } } if (request.DataToRemove != null) { foreach (var recipe in request.DataToRemove) { Recipe rec = uof.Db.Recipies.Get(recipe.RecipeID); if (rec != null) uof.Db.Recipies.Delete(rec); } } uof.Db.Commit(); return TrioResponse.Create(uof.Db.Recipies.FindAll().ToList().Select(recipeAssembler.ToSimpleDto).ToList(), uof.Db.Ingredients.FindAll().Select(ingAssembler.ToOrderIngredientDto).ToList(), 0); }); } }
public void MakeOrderFromWeb(UpdateOrRemoveRequest<List<OrderInfoDTO>> req) { if (req.Data == null) throw PizzaServiceFault.Create(Messages.NO_DATA); db.inTransaction(uow => { UserDTO userDto = GetUser(req).Data; if (!HasRights(userDto, 1)) throw PizzaServiceFault.Create(Messages.NO_PERMISSIONS); User user = uow.Db.Users.Get(userDto.UserID); List<OrderInfoDTO> data = req.Data; List<OrderDetail> od = new List<OrderDetail>(); foreach (var item in data) { var sizeVal = Size.SMALL; switch (item.Size) { case "normal": sizeVal = Size.MEDIUM; break; case "big": sizeVal = Size.GREAT; break; default: break; } var size = uow.Db.Sizes.Find(sizeVal); var ings = (List<Ingredient>)uow.Db.Ingredients.Find(item.Ingredients); List<OrderIngredient> oings = new List<OrderIngredient>(); for (int i = 0; i < item.Quantities.Length; i++) { int quant = (item.Quantities[i] == "normal") ? ings[i].NormalWeight : ings[i].ExtraWeight; oings.Add(new OrderIngredient { Ingredient = ings[i], Quantity = quant }); } od.Add(new OrderDetail { Ingredients = oings, Size = size }); } Order o = new Order { Address = userDto.Address, CustomerPhone = userDto.Phone, Date = DateTime.Now, OrderDetails = od, State = uow.Db.States.Find(State.NEW), User = user }; uow.Db.Orders.Insert(o); uow.Db.Commit(); /*State st = uow.Db.States.Find(State.NEW); List<OrderDetail> od = new List<OrderDetail>(); foreach (var ordDto in o.OrderDetailsDTO) { List<OrderIngredient> oIngs = new List<OrderIngredient>(); foreach (var oIng in ordDto.Ingredients) { oIngs.Add(new OrderIngredient { Ingredient = uow.Db.Ingredients.Get(oIng.IngredientID), Quantity = oIng.Quantity }); } od.Add(new OrderDetail { Size = uow.Db.Sizes.Get(ordDto.Size.SizeID), Ingredients = oIngs }); } Order order = new Order { Address = o.Address, CustomerPhone = o.CustomerPhone, Date = o.Date, User = user, State = st, UserID = user.UserID, OrderDetails = od }; uow.Db.Orders.Insert(order); uow.Db.Commit();*/ }); }
public void RemoveOrder(UpdateOrRemoveRequest<OrderDTO> request) { using (var db = new PizzaUnitOfWork()) { db.inTransaction(uow => { if (!HasRights(GetUser(request).Data, 2)) throw PizzaServiceFault.Create(Messages.NO_PERMISSIONS); Order o = db.Orders.Get(request.DataToRemove.OrderID); if (o != null) db.Orders.Delete(o); uow.Db.Commit(); }); } }
public ListResponse<StockIngredientDTO> UpdateOrRemoveIngredient(UpdateOrRemoveRequest<IList<StockIngredientDTO>> request) { // TODO implement mock throw new NotImplementedException(); }
public ListResponse<UserDTO> UpdateOrRemoveUser(UpdateOrRemoveRequest<List<UserDTO>> req) { if (req.Login != "Admin") throw new FaultException<PizzaServiceFault>(new PizzaServiceFault("wrong user")); throw new NotImplementedException(); }
public TrioResponse<List<RecipeDTO>, List<OrderIngredientDTO>, int> UpdateOrRemoveRecipe(UpdateOrRemoveRequest<List<RecipeDTO>> req) { if (req.Login != "Admin") throw new FaultException<PizzaServiceFault>(new PizzaServiceFault("wrong user")); throw new NotImplementedException(); }
public void RemoveOrder(UpdateOrRemoveRequest<OrderDTO> req) { if (req.Login != "Admin") throw new FaultException<PizzaServiceFault>(new PizzaServiceFault("wrong user")); throw new NotImplementedException(); }
public void MakeOrderFromWeb(UpdateOrRemoveRequest<List<OrderInfoDTO>> req) { if (req.Login != "Admin") throw new FaultException<PizzaServiceFault>(new PizzaServiceFault("wrong user")); OrdersMade = req.Data; OrdersRemoved = req.DataToRemove; }