public IActionResult RemoveUser([FromBody] UserCategoryInDto userCategoryDto) { //Check if inputs are valid if (string.IsNullOrEmpty(userCategoryDto.UserId)) { return(BadRequest(new Message("Please give valid user id"))); } if (string.IsNullOrEmpty(userCategoryDto.CategoryId)) { return(BadRequest(new Message("Please give valid category id"))); } //Check if user is deleted var userIn = _userRepository.GetById(userCategoryDto.UserId); if (userIn == null) { return(BadRequest(new Message("User: "******" no longer exists"))); } //Check if category is deleted var categoryIn = _categoryRepository.GetById(userCategoryDto.CategoryId); if (categoryIn == null) { return(BadRequest(new Message("Category: " + userCategoryDto.CategoryId + " no longer exists"))); } var tokenUser = HttpContext.User; //Check if request is sent by user (follower of the category) . if (!AuthorizationHelpers.IsAuthorizedUser(tokenUser, userCategoryDto.UserId)) { return(Unauthorized(new Message("Unauthorized user."))); } //Get user-category relation from table var userCategory = _userCategoryRepository .Where(uc => uc.CategoryId == userCategoryDto.CategoryId && uc.UserId == userCategoryDto.UserId) .FirstOrDefault(); //If such relation doesn't exist if (userCategory == null) { return(BadRequest(new Message("User : "******" is not following Category : " + userCategoryDto.CategoryId))); } //Update table if (_userCategoryRepository.Delete(userCategory)) { return(Ok(new Message("User : "******" is deleted from Category : " + userCategory.CategoryId))); } return(BadRequest(new Message("Error when deleting user-category relation"))); }
public ActionResult <UserCategoryOutDto> AddUser([FromBody] UserCategoryInDto userCategoryDto) { //Check if inputs are valid if (string.IsNullOrEmpty(userCategoryDto.UserId)) { return(BadRequest(new Message("Please give valid user id"))); } if (string.IsNullOrEmpty(userCategoryDto.CategoryId)) { return(BadRequest(new Message("Please give valid category id"))); } //Check if user is deleted var userIn = _userRepository.GetById(userCategoryDto.UserId); if (userIn == null) { return(BadRequest(new Message("User: "******" no longer exists"))); } //Check if category is deleted var categoryIn = _categoryRepository.GetById(userCategoryDto.CategoryId); if (categoryIn == null) { return(BadRequest(new Message("Category: " + userCategoryDto.CategoryId + " no longer exists"))); } var tokenUser = HttpContext.User; //Check if request is sent by user (who is being follower of the category) . if (!AuthorizationHelpers.IsAuthorizedUser(tokenUser, userCategoryDto.UserId)) { return(Unauthorized(new Message("Unauthorized user."))); } //Get user-category relation from table var userCategory = _userCategoryRepository .Where(uc => uc.CategoryId == userCategoryDto.CategoryId && uc.UserId == userCategoryDto.UserId) .FirstOrDefault(); //If such relation exists if (userCategory != null) { return(BadRequest(new Message("User : "******" is already following Category : " + userCategoryDto.CategoryId))); } //Create new relation var userCategoryIn = new UserCategory(userCategoryDto.UserId, userCategoryDto.CategoryId); //Update table if (_userCategoryRepository.Add(userCategoryIn)) { var userCategoryOutDto = _mapper.Map <UserCategoryOutDto>(userCategoryIn); return(Ok(userCategoryOutDto)); } return(BadRequest(new Message("Error when adding user-category relation"))); }