Ejemplo n.º 1
0
        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 }"
            }));
        }
Ejemplo n.º 2
0
        public ICommandResult Criar([FromBody] CriarUsuarioAtuacaoCommand command)
        {
            var result = (CommandResult)_handler.Handle(command);

            return(result);
        }