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)); }
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)); }
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)); }
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 }); }
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)); }