Пример #1
0
        public void SalvarUsuarioAtuacao(UsuarioAreaAtuacao areaAtuacao)
        {
            var query = "INSERT INTO UsuariosAreasAtuacao (IdUsuario, IdAreaAtuacao) VALUES (:IdUsuario, :IdAreaAtuacao) returning Id into :Id";

            var param = new DynamicParameters();

            param.Add(name: "Id", value: areaAtuacao.Id, direction: ParameterDirection.Input);
            param.Add(name: "IdUsuario", value: areaAtuacao.Usuario.Id, direction: ParameterDirection.Input);
            param.Add(name: "IdAreaAtuacao", value: areaAtuacao.AreaAtuacao.Id, direction: ParameterDirection.Input);

            _context.Connection.Execute(query, param);

            // Retorno do id gerado na base
            //var Id = param.Get<int>("Id");
        }
Пример #2
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 }"
            }));
        }