public IActionResult UpdateMenu(int id, [FromBody] PostMenuDTO menuDTO) { _requestLogService.SaveRequest(User.Identity.GetUserId(), "PUT", "api/v1/menus/{id}", "UpdateMenu"); if (!ModelState.IsValid) { return(BadRequest("Invalid fields provided, please double check the parameters")); } if (menuDTO.RestaurantId.Equals(null)) { return(BadRequest("Menu is not related any Restaurant")); } if (!IsRestaurantUserOrAdmin(menuDTO.RestaurantId)) { return(BadRequest("Menu can only be updated by admin or by restaurant user")); } var m = _menuService.GetMenuById(id); if (m == null) { return(NotFound()); } if (!(User.IsInRole("premiumUser") && !User.IsInRole("admin")) && menuDTO.PromotionId != null && menuDTO.PromotionId != m.PromotionId) { return(StatusCode(403, "Promotions to menu can only be added by admin or premium user")); } MenuDTO updatedMenu = _menuService.UpdateMenu(id, menuDTO); return(Ok(updatedMenu)); }
public IActionResult PostMenu([FromBody] PostMenuDTO menuDTO) { _requestLogService.SaveRequest(User.Identity.GetUserId(), "POST", "api/v1/menus", "PostMenu"); if (!ModelState.IsValid) { return(BadRequest("Invalid fields provided, please double check the parameters")); } if (menuDTO.RestaurantId.Equals(null)) { return(BadRequest("Menu is not related any Restaurant")); } if (!IsRestaurantUserOrAdmin(menuDTO.RestaurantId)) { return(BadRequest("New menu can only be added by admin or by restaurant user")); } int userMenus = _menuService.GetUserMenuCount(User.Identity.GetUserId()); if (!User.IsInRole("premiumUser") && !User.IsInRole("admin")) { if (userMenus >= 1) { return(StatusCode(403, "Regular user can only create 1 menu. Please sign up for premium services to add more.")); } if (menuDTO.PromotionId != null) { return(StatusCode(403, "New menu with promotion can only be added by admin or premium user")); } } var newMenu = _menuService.AddNewMenu(menuDTO, User.Identity.GetUserId()); return(CreatedAtAction(nameof(GetMenu), new { id = newMenu.MenuId }, newMenu)); }
public MenuDTO AddNewMenu(PostMenuDTO menuDTO, string userId) { var newMenu = _menuFactory.Create(menuDTO); newMenu.UserId = userId; _uow.Menus.Add(newMenu); _uow.SaveChanges(); return(_menuFactory.Create(newMenu)); }
public Menu Create(PostMenuDTO menuDTO) { return(new Menu { RestaurantId = menuDTO.RestaurantId, PromotionId = menuDTO.PromotionId, Name = menuDTO.Name, ActiveFrom = menuDTO.ActiveFrom, ActiveTo = menuDTO.ActiveTo, RepetitionInterval = menuDTO.RepetitionInterval }); }
public MenuDTO UpdateMenu(int id, PostMenuDTO updatedMenuDTO) { if (_uow.Menus.Exists(id)) { Menu menu = _uow.Menus.Find(id); menu.ActiveFrom = updatedMenuDTO.ActiveFrom; menu.ActiveTo = updatedMenuDTO.ActiveTo; menu.PromotionId = updatedMenuDTO.PromotionId; menu.RepetitionInterval = updatedMenuDTO.RepetitionInterval; _uow.Menus.Update(menu); _uow.SaveChanges(); } return(GetMenuById(id)); }