Exemple #1
0
        public async Task <UserChangeActivationResponse> ChangeActivation(UserChangeActivationRequest request)
        {
            var response = new UserChangeActivationResponse();

            var currentUser = _cacheManager.GetCachedCurrentUser(request.CurrentUserId);

            if (!currentUser.IsSuperAdmin)
            {
                response.SetInvalid();
                return(response);
            }

            var user = await _userRepository.Select(x => x.Uid == request.UserUid);

            if (user.IsNotExist())
            {
                response.SetInvalidBecauseNotFound("user");
                return(response);
            }

            user.IsActive = !user.IsActive;
            var result = await _userRepository.Update(request.CurrentUserId, user);

            if (result)
            {
                _cacheManager.UpsertUserCache(user, _userFactory.MapCurrentUser(user));

                response.Status = ResponseStatus.Success;
                return(response);
            }

            response.SetFailed();
            return(response);
        }