private async Task <IActionResult> UserAsync <TUser, TModel>(TModel model, IUserRepositoryManager <TUser> userRepositoryManager) where TModel : UpdatePost
            where TUser : User
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ErrorEnum.InvalidModelState));
            }

            var userName = User.Identity.Name;

            if (userName == null)
            {
                return(Unauthorized(ErrorEnum.NoUserLogIn));
            }

            var applicationUser = await userManager.FindByNameAsync(userName);

            Debug.Assert(applicationUser != null);

            var user = await userRepositoryManager.UserRepository.GetByIdAsync(applicationUser.Id);

            Debug.Assert(user != null);

            mapper.Map(model, applicationUser);

            mapper.Map(model, user);

            var result = await userRepositoryManager.UpdateAsync(applicationUser, user);

            Debug.Assert(result.Succeeded);
            return(Ok());
        }