public IActionResult UpdateRestaurant(int id, [FromBody] PostRestaurantDTO restaurantDTO) { _requestLogService.SaveRequest(User.Identity.GetUserId(), "PUT", "api/v1/restaurants/{id}", "UpdateRestaurant"); if (!ModelState.IsValid) { return(BadRequest("Invalid fields provided, please double check the parameters")); } var restaurant = _restaurantService.GetRestaurantById(id); if (restaurant == null) { return(NotFound()); } if (!IsAuthorized(restaurant)) { return(StatusCode(403, "You have to be logged in as one of the restaurant users to update restaurant information.")); } if (!(User.IsInRole("premiumUser") || User.IsInRole("admin")) && restaurantDTO.PromotionId != null && restaurantDTO.PromotionId != restaurant.PromotionId) { return(StatusCode(403, "Promotions to restaurant can only be added by admin or premium user")); } return(Ok(_restaurantService.UpdateRestaurant(id, restaurantDTO))); }
public IActionResult PostRestaurant([FromBody] PostRestaurantDTO restaurantDTO) { _requestLogService.SaveRequest(User.Identity.GetUserId(), "POST", "api/v1/restaurants", "PostRestaurant"); if (!ModelState.IsValid) { return(BadRequest("Invalid fields provided, please double check the parameters")); } int userRestaurants = _restaurantService.GetUserRestaurantCount(User.Identity.GetUserId()); if (!User.IsInRole("premiumUser") && !User.IsInRole("admin")) { if (userRestaurants >= 1) { return(BadRequest("Regular user can only create 1 Restaurant. Please sign up for premium services to add more.")); } if (restaurantDTO.PromotionId != null) { return(BadRequest("New menu with promotion can only be added by admin or premium user")); } } var newRestaurant = _restaurantService.AddNewRestaurant(restaurantDTO, User.Identity.GetUserId()); return(CreatedAtAction(nameof(GetRestaurant), new { id = newRestaurant.RestaurantId }, newRestaurant)); }
public RestaurantDTO AddNewRestaurant(PostRestaurantDTO restaurantDTO, string userId) { var newRestaurant = _restaurantFactory.Create(restaurantDTO); _uow.Restaurants.Add(newRestaurant); _uow.RestaurantUsers.Add(new RestaurantUser { RestaurantId = newRestaurant.RestaurantId, UserId = userId }); _uow.SaveChanges(); return(_restaurantFactory.CreateComplex(newRestaurant)); }
public Restaurant Create(PostRestaurantDTO restaurantDTO) { return(new Restaurant { Name = restaurantDTO.Name, Url = restaurantDTO.Url, ContactNumber = restaurantDTO.ContactNumber, Email = restaurantDTO.Email, Address = AddressDTO.CreateFromDTO(restaurantDTO.Address) }); }
public RestaurantDTO UpdateRestaurant(int id, PostRestaurantDTO updatedRestaurantDTO) { if (_uow.Restaurants.Exists(id)) { Restaurant restaurant = _uow.Restaurants.Find(id); restaurant.Name = updatedRestaurantDTO.Name; restaurant.Url = updatedRestaurantDTO.Url; restaurant.ContactNumber = updatedRestaurantDTO.ContactNumber; restaurant.Email = updatedRestaurantDTO.Email; _uow.Restaurants.Update(restaurant); _uow.SaveChanges(); } return(GetRestaurantById(id)); }