public async Task <ActionResult <UserViewModel> > Create(UserViewModel loginViewModel)
 {
     if (ModelState.IsValid)
     {
         if (await db.Users.AnyAsync(x => x.Email == loginViewModel.Login))
         {
             return(BadRequest("Такой пользователь уже существует"));
         }
         logger.LogInformation($"Create user {loginViewModel.Login}:{loginViewModel.Password}");
         var role    = db.Roles.FirstOrDefault(x => x.Name == loginViewModel.Role);
         var lang    = db.Languages.First();
         var newUser = new User
         {
             Id           = 0,
             Email        = loginViewModel.Login,
             Nickname     = loginViewModel.Login,
             Role         = role,
             Language     = lang,
             LanguageId   = lang.Id,
             RoleId       = role.Id,
             PasswordHash = CryptService.CreateHash(loginViewModel.Password)
         };
         db.Add(newUser);
         db.SaveChanges();
         return(Ok());
     }
     return(loginViewModel);
 }
        public async Task <ActionResult <UserViewModel> > Edit(string id, UserViewModel loginViewModel)
        {
            if (id != loginViewModel.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                var user = await db.Users.FirstOrDefaultAsync(x => x.Id.ToString() == id);

                var role = db.Roles.FirstOrDefault(x => x.Name == loginViewModel.Role);
                user.Email        = loginViewModel.Login;
                user.Role         = role;
                user.PasswordHash = CryptService.CreateHash(loginViewModel.Password);
                db.Update(user);
                db.SaveChanges();
                return(Ok());
            }
            return(loginViewModel);
        }