Пример #1
0
        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());
                    });
            }
        }
Пример #2
0
        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());
                });
            }
        }
Пример #3
0
        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);
                });
            }
        }
Пример #4
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();*/
                });
        }
Пример #5
0
        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();
                    });
            }
        }
Пример #6
0
 public ListResponse<StockIngredientDTO> UpdateOrRemoveIngredient(UpdateOrRemoveRequest<IList<StockIngredientDTO>> request)
 {
     // TODO implement mock
     throw new NotImplementedException();
 }
Пример #7
0
 public ListResponse<UserDTO> UpdateOrRemoveUser(UpdateOrRemoveRequest<List<UserDTO>> req)
 {
     if (req.Login != "Admin") throw new FaultException<PizzaServiceFault>(new PizzaServiceFault("wrong user"));
     throw new NotImplementedException();
 }
Пример #8
0
 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();
 }
Пример #9
0
 public void RemoveOrder(UpdateOrRemoveRequest<OrderDTO> req)
 {
     if (req.Login != "Admin") throw new FaultException<PizzaServiceFault>(new PizzaServiceFault("wrong user"));
     throw new NotImplementedException();
 }
Пример #10
0
 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;
 }