public ICommandResult Handle(CriarUsuarioAtuacaoCommand command) { if (!command.IsValidCommand()) { return(new CommandResult(false, "Por favor, corrigir os campos abaixo", command.Notifications)); } var usuario = _repository.UsuarioBase(command.IdUsuario); if (usuario == null) { return(new CommandResult(false, "O usuario não existe na base de dados", new { })); } var atuacao = _repository.AreaAtuacao(command.IdAreaAtuacao); if (atuacao == null) { return(new CommandResult(false, "A área de atuação não existe na base de dados", new { })); } if (_repository.UsuarioAtuacaoExistente(command.IdUsuario, command.IdAreaAtuacao)) { return(new CommandResult(false, $"O usuário { usuario.Id } - { usuario.Login.Usuario } já está relacionado com a àrea { atuacao.Id } - { atuacao.Titulo }", new { })); } var usuarioAtuacao = new UsuarioAreaAtuacao(usuario, atuacao); AddNotifications(usuarioAtuacao); if (Invalid) { return(new CommandResult(false, "Por favor, corrigir os campos abaixo", Notifications)); } _repository.SalvarUsuarioAtuacao(usuarioAtuacao); return(new CommandResult(true, "Área de atuação cadastrada com sucesso", new { Usuario = usuario.Login.Usuario, Atuacao = $"{ atuacao.Id } - { atuacao.Titulo }" })); }
public ICommandResult Criar([FromBody] CriarUsuarioAtuacaoCommand command) { var result = (CommandResult)_handler.Handle(command); return(result); }