Пример #1
0
        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")));
        }
Пример #2
0
        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")));
        }