public IQueryResult Handle(BuscarAdminQuery command) { command.Validate(); if (command.Invalid) { return(new GenericQueryResult(false, "Dados inválidos", command.Notifications)); } var adminProcurado = _adminRepositorio.BuscarPorId(command.Id); if (adminProcurado == null) { return(new GenericQueryResult(false, "Administrador não encontrado", null)); } var result = new BuscarAdminResult { Id = adminProcurado.Id, Nome = adminProcurado.NomeUsuario, Email = adminProcurado.Email, Telefone = adminProcurado.Telefone }; return(new GenericQueryResult(true, "Dados do administrador", result)); }
public ICommandResult Handler(AlterarContaCommand command) { //Verifica se o comando recebido é válido. command.Validar(); //Verifica se os dados são válidos. if (command.Invalid) { return(new GenericCommandResult(false, "Dados Inválidos", command.Notifications)); } //Variável de apoio para validação de email. var usuarioExiste = _adminRepositorio.BuscarPorId(command.Id); //Verifica se o email do usuário já foi cadastrado no banco. if (usuarioExiste == null) { return(new GenericCommandResult(false, "Administrdor não encontrado", null)); } if (command.Email != usuarioExiste.Email) { var novoEmailExistente = _adminRepositorio.BuscarPorEmail(command.Email); if (novoEmailExistente != null) { return(new GenericCommandResult(false, "Este e-mail já está vinculado a uma conta, informe outro email", command.Notifications)); } } usuarioExiste.AlterarAdmin(command.Nome, command.Email, command.Telefone); if (usuarioExiste.Invalid) { return(new GenericCommandResult(false, "Dados inválidos", usuarioExiste.Notifications)); } _adminRepositorio.Alterar(usuarioExiste); return(new GenericCommandResult(true, "Administrador alterado com sucesso", usuarioExiste)); }