public async Task <CustomResponse <User> > Adicionar(User user, AccessManager accessManager, Guid UserId) { var _response = new CustomResponse <User>(); try { if (user.UserId == Guid.Empty) { if (!_context.Users.Any(x => x.Username == user.Username || x.Email == user.Email)) { var _rolesUser = new List <UserRole>(); foreach (Role role in _context.Roles.Where(x => x.NameRole != Roles.ROLE_API_MASTER).ToList <Role>()) { _rolesUser.Add(new UserRole { Role = role, User = user }); } var _password = Convert.ToBase64String(accessManager.HashPassword(user.Password, _rng)); var _userHash = new User() { Username = user.Username, Email = user.Email, Password = _password, ConfirmPassword = _password, UserRoles = _rolesUser }; _response = await base.Adicionar(_userHash, UserId); } else { _response.Message = "Usuário já cadastrado"; _response.StatusCode = StatusCodes.Status409Conflict; } } else { user.UserId = UserId = Guid.NewGuid(); user.Password = user.ConfirmPassword = Convert.ToBase64String(accessManager.HashPassword(user.Password, _rng)); _response = await base.Adicionar(user, UserId); } } catch (Exception ex) { _response.Message = ex.Message; Error.LogError(ex); } return(_response); }
public async Task <CustomResponse <User> > Incluir(User user, AccessManager accessManager, Guid UserId) { var _response = new CustomResponse <User>(); try { if (user.UserRoles != null) { if (user.UserRoles.Any(x => x.Role != null)) { var _rolesUser = new List <UserRole>(); foreach (Role role in user.UserRoles.Where(x => x.Role.NameRole != Roles.ROLE_API_MASTER).Select(x => x.Role).ToList <Role>()) { var _roleFound = _context.Roles.Where(x => x.NameRole == role.NameRole).FirstOrDefault(); _rolesUser.Add(new UserRole { Role = _roleFound, User = user }); } var _password = Convert.ToBase64String(accessManager.HashPassword(user.Password, _rng)); var _userHash = new User() { Username = user.Username, Email = user.Email, Password = _password, ConfirmPassword = _password, UserRoles = _rolesUser }; _response = await base.Incluir(_userHash, UserId); } } else { user.UserId = UserId = Guid.NewGuid(); user.Password = user.ConfirmPassword = Convert.ToBase64String(accessManager.HashPassword(user.Password, _rng)); _response = await base.Incluir(user, UserId); } } catch (Exception ex) { _response.Message = ex.Message; } return(_response); }
public async Task <CustomResponse <User> > Atualizar(User user, AccessManager accessManager, Guid UserId) { var _response = new CustomResponse <User>(); try { if (user.UserId != UserId) { var _userHash = new User() { UserId = user.UserId, Username = user.Username, Email = user.Email }; if (!string.IsNullOrEmpty(user.Password)) { _userHash.Password = Convert.ToBase64String(accessManager.HashPassword(user.Password, _rng)); } _context.Update <User>(_userHash); await _context.SaveChangesAsync(); _response.Message = "Alteração"; _response.StatusCode = StatusCodes.Status200OK; await GerarLog(_response.Message, typeof(User).Name, UserId); } else { _response.Message = "Não Autorizado"; _response.StatusCode = StatusCodes.Status401Unauthorized; } } catch (Exception ex) { _response.Message = ex.Message; Error.LogError(ex); } return(_response); }
public async Task <CustomResponse <User> > ConfirmarSenha(User user, AccessManager accessManager, Guid UserId) { var _response = new CustomResponse <User>(); try { if (!string.IsNullOrEmpty(user.Email)) { var _userHash = new User() { UserId = UserId, Username = user.Username, Email = user.Email }; if (!string.IsNullOrEmpty(user.Password)) { _userHash.Password = _userHash.ConfirmPassword = Convert.ToBase64String(accessManager.HashPassword(user.Password, _rng)); } _context.Update <User>(_userHash); await _context.SaveChangesAsync(); _response.Message = "O Usuário alterou a senha padrão para definitiva"; _response.StatusCode = StatusCodes.Status200OK; await GerarLog(_response.Message, typeof(User).Name, UserId); } else { _response.Message = "Não Autorizado"; _response.StatusCode = StatusCodes.Status401Unauthorized; } } catch (Exception ex) { _response.Message = ex.Message; } return(_response); }