示例#1
0
        public IActionResult UpdateDish(int id, [FromBody] PostDishDTO dishDTO)
        {
            _requestLogService.SaveRequest(User.Identity.GetUserId(), "PUT", "api/v1/dishes/{id}", "UpdateDish");
            if (!ModelState.IsValid)
            {
                return(BadRequest("Invalid fields provided, please double check the parameters"));
            }
            if (dishDTO.RestaurantId.Equals(null))
            {
                return(BadRequest("Dish is not related any Restaurant"));
            }
            if (!IsRestaurantUserOrAdmin(dishDTO.RestaurantId))
            {
                return(StatusCode(403, "Dish can only be updated by admin or by restaurant user"));
            }

            var d = _dishService.GetDishById(id);

            if (d == null)
            {
                return(NotFound());
            }

            if (!(User.IsInRole("premiumUser") && !User.IsInRole("admin")) &&
                dishDTO.PromotionId != null && dishDTO.PromotionId != d.PromotionId)
            {
                return(BadRequest("Promotions to dishes can only be added by admin or premium user"));
            }

            DishDTO updatedDish = _dishService.UpdateDish(id, dishDTO);

            return(Ok(updatedDish));
        }
示例#2
0
        public IActionResult PostDish([FromBody] PostDishDTO dishDTO)
        {
            _requestLogService.SaveRequest(User.Identity.GetUserId(), "POST", "api/v1/dishes", "PostDish");
            if (!ModelState.IsValid)
            {
                return(BadRequest("Invalid fields provided, please double check the parameters"));
            }
            if (dishDTO.RestaurantId.Equals(null))
            {
                return(BadRequest("Dish is not related any Restaurant"));
            }
            if (!IsRestaurantUserOrAdmin(dishDTO.RestaurantId))
            {
                return(StatusCode(403, "New dish can only be added by admin or by restaurant user"));
            }
            if (!(User.IsInRole("premiumUser") && !User.IsInRole("admin")) &&
                dishDTO.PromotionId != null)
            {
                return(BadRequest("New dish with promotion can only be added by admin or premium user"));
            }

            var newDish = _dishService.AddNewDish(dishDTO, User.Identity.GetUserId());

            return(CreatedAtAction(nameof(GetDish), new { id = newDish.DishId }, newDish));
        }
示例#3
0
        public DishDTO UpdateDish(int id, PostDishDTO updatedDishDTO)
        {
            if (_uow.Dishes.Exists(id))
            {
                Dish dish = _uow.Dishes.Find(id);
                dish.Title         = updatedDishDTO.Title;
                dish.Description   = updatedDishDTO.Description;
                dish.AvailableFrom = updatedDishDTO.AvailableFrom;
                dish.AvailableTo   = updatedDishDTO.AvailableTo;
                dish.ServeTime     = updatedDishDTO.ServeTime;
                dish.Vegan         = updatedDishDTO.Vegan;
                dish.LactoseFree   = updatedDishDTO.LactoseFree;
                dish.GlutenFree    = updatedDishDTO.GlutenFree;
                dish.Kcal          = updatedDishDTO.Kcal;
                dish.WeightG       = updatedDishDTO.WeightG;
                dish.Price         = updatedDishDTO.Price;
                dish.DailyPrice    = updatedDishDTO.DailyPrice;
                dish.Daily         = updatedDishDTO.Daily;
                dish.PromotionId   = updatedDishDTO.PromotionId;
                _uow.Dishes.Update(dish);
                _uow.SaveChanges();
            }

            return(GetDishById(id));
        }
示例#4
0
 public Dish Create(PostDishDTO dishDTO)
 {
     return(new Dish
     {
         RestaurantId = dishDTO.RestaurantId,
         PromotionId = dishDTO.PromotionId,
         Title = dishDTO.Title,
         Description = dishDTO.Description,
         AvailableFrom = dishDTO.AvailableFrom,
         AvailableTo = dishDTO.AvailableTo,
         ServeTime = dishDTO.ServeTime,
         Vegan = dishDTO.Vegan,
         LactoseFree = dishDTO.LactoseFree,
         GlutenFree = dishDTO.GlutenFree,
         Kcal = dishDTO.Kcal,
         WeightG = dishDTO.WeightG,
         Price = dishDTO.Price,
         DailyPrice = dishDTO.DailyPrice,
         Daily = dishDTO.Daily
     });
 }
示例#5
0
        public DishDTO AddNewDish(PostDishDTO dishDTO, string userId)
        {
            var newDish = _dishFactory.Create(dishDTO);

            newDish.UserId = userId;
            _uow.Dishes.Add(newDish);
            _uow.SaveChanges();

            if (dishDTO.MenuId != null && _uow.Menus.Exists((int)dishDTO.MenuId))
            {
                MenuDish md = new MenuDish
                {
                    DishId = newDish.DishId,
                    MenuId = dishDTO.MenuId.Value
                };

                _uow.MenuDishes.Add(md);
                _uow.SaveChanges();
            }


            return(_dishFactory.CreateComplex(newDish));
        }