public async Task <ActionResult <Usuario> > Put(int id, [FromForm] AltUsuarioViewModel usuario) { try { var usuarioExistente = await repositorio.Get(id); if (usuarioExistente == null) { return(NotFound("O usuário informado não exite!")); } var usuarioAlterado = verificacaoAlteracao(usuarioExistente, usuario); var usuarioComAlteracao = await repositorio.Put(usuarioAlterado); return(usuarioComAlteracao); } catch (DbUpdateConcurrencyException) { var usuarioValidacao = await repositorio.Get(id); if (usuarioValidacao == null) { return(NotFound("Usuario não encontrado")); } else { throw; } } }
private Usuario verificacaoAlteracao(Usuario usuario, AltUsuarioViewModel alteracao) { if (alteracao.nomeCompleto == null && alteracao == null) { usuario.NomeCompleto = usuario.NomeCompleto; } else if (alteracao.nomeCompleto != null && usuario.NomeCompleto != alteracao.nomeCompleto) { usuario.NomeCompleto = alteracao.nomeCompleto; } if (alteracao.loginUsuario == null && alteracao == null) { usuario.LoginUsuario = usuario.LoginUsuario; } else if (alteracao.loginUsuario != null && usuario.LoginUsuario != alteracao.loginUsuario) { usuario.LoginUsuario = alteracao.loginUsuario; } if (alteracao.email == null && alteracao == null) { usuario.Email = usuario.Email; } else if (alteracao.email != null && usuario.Email != alteracao.email) { string tituloEmail = "Aguardando aprovação!"; string corpoEmail = System.IO.File.ReadAllText(path: @"emails\parabens.html"); _emailController.Email(alteracao.email, corpoEmail, tituloEmail); usuario.Email = alteracao.email; } var hashSenha = new HashSenha(SHA256.Create()); if (alteracao.senha == null && alteracao == null) { usuario.Senha = usuario.Senha; } else if (alteracao.senha != null && usuario.Senha != alteracao.senha) { usuario.Senha = hashSenha.HasheandoSenha(alteracao.senha); string tituloEmail = ($"Sua senha foi alterada para {alteracao.senha}!"); string corpoEmail = System.IO.File.ReadAllText(path: @"emails\parabens.html"); _emailController.Email(usuario.Email, corpoEmail, tituloEmail); } if (alteracao.departamento == null && alteracao == null) { usuario.Departamento = usuario.Departamento; } else if (alteracao.departamento != null && usuario.Departamento != alteracao.departamento) { usuario.Departamento = alteracao.departamento; } if (alteracao.tipoDeUsuario == null && alteracao == null) { usuario.TipoDeUsuario = usuario.TipoDeUsuario; } else if (alteracao.tipoDeUsuario != null && usuario.TipoDeUsuario != alteracao.tipoDeUsuario) { usuario.TipoDeUsuario = alteracao.tipoDeUsuario; } if (alteracao.statusAprovacao == null && alteracao == null) { usuario.StatusAprovacao = usuario.StatusAprovacao; } else if (alteracao.statusAprovacao != null && usuario.StatusAprovacao != alteracao.statusAprovacao) { usuario.StatusAprovacao = alteracao.statusAprovacao; if (usuario.StatusAprovacao == "Aprovado") { string tituloEmail = "Você foi aprovado!"; string corpoEmail = System.IO.File.ReadAllText(path: @"emails\parabens.html"); _emailController.Email(usuario.Email, corpoEmail, tituloEmail); } } if (Request.Form.Files.Count > 0) { var arquivo = Request.Form.Files[0]; var caminhoPasta = @"Resources\Usuario\"; usuario.FotoUsuario = _uploadController.Upload(arquivo, caminhoPasta); } return(usuario); }