public Pessoa Post([FromBody] CriarPessoaCommand command)
        {
            var pessoa = new Pessoa(command.NomePessoa);

            _pessoaRepository.Save(pessoa);

            return(pessoa);
        }
예제 #2
0
        public void Quando_criar__com_todos_os_dados_corretamente__devera_constar_respectivamente()
        {
            var command = new CriarPessoaCommand(_entityId, _nome, _cpf);

            command.EntityId.Should().Be(_entityId);
            command.Nome.Should().Be(_nome);
            command.Cpf.Should().Be(_cpf);
        }
        private async Task Create()
        {
            _mockPessoaRepository.Setup(x => x.ObterPorCpfAsync(It.IsAny <string>()))
            .Returns(Task.FromResult(new Domain.Pessoa {
            }));

            _command = new CriarPessoaCommand(_entityId, _nome, _cpf);
            _handler = new CriarPessoaCommandHandler(_mockPessoaRepository.Object);

            await _handler.HandleAsync(_command);
        }
예제 #4
0
        public async Task <Guid> CriarAsync(string nome, string cpf)
        {
            var pessoaId = Guid.NewGuid();
            var command  = new CriarPessoaCommand(pessoaId, nome, cpf);

            await _commandDispatcher.DispatchAsync(command);

            await _unitOfWork.CommitAsync();

            return(pessoaId);
        }
예제 #5
0
 public async Task <IActionResult> Criar([FromBody] CriarPessoaCommand command)
 {
     try
     {
         _pessoaService.Criar(command);
         return(await Response(null, _pessoaService.Notifications));
     }
     catch (Exception ex)
     {
         return(await base.TryErrors(ex));
     }
 }
        private async Task Create()
        {
            _mockPessoaRepository.Setup(x => x.AddAsync(It.IsAny <Domain.Pessoa>()))
            .Callback((Domain.Pessoa pessoa) =>
            {
                _pessoaCallBack = pessoa;
            });

            _command = new CriarPessoaCommand(_entityId, _nome, _cpf);
            _handler = new CriarPessoaCommandHandler(_mockPessoaRepository.Object);

            await _handler.HandleAsync(_command);
        }
예제 #7
0
        private Pessoa ExistePai(CriarPessoaCommand command)
        {
            if (string.IsNullOrWhiteSpace(command.NomePai))
            {
                return(null);
            }

            var pai = _pessoaRepository.BuscaPorNomeSobrenome(command.NomePai, command.SobrenomePai);

            if (pai == null)
            {
                _pessoaRepository.Add(new Pessoa(command.NomePai, command.SobrenomePai));
                pai = _pessoaRepository.BuscaPorNomeSobrenome(command.NomePai, command.SobrenomePai);
            }
            return(pai);
        }
예제 #8
0
        private Pessoa ExisteMae(CriarPessoaCommand command)
        {
            if (string.IsNullOrWhiteSpace(command.NomeMae))
            {
                return(null);
            }

            var mae = _pessoaRepository.BuscaPorNomeSobrenome(command.NomeMae, command.SobrenomeMae);

            if (mae == null)
            {
                _pessoaRepository.Add(new Pessoa(command.NomeMae, command.SobrenomeMae));
                mae = _pessoaRepository.BuscaPorNomeSobrenome(command.NomeMae, command.SobrenomeMae);
            }
            return(mae);
        }
예제 #9
0
        public void Criar(CriarPessoaCommand command)
        {
            using (var trans = new TransactionScope())
            {
                var pessoa = _pessoaRepository.BuscaPorNomeSobrenome(command.Nome, command.Sobrenome)
                             ?? new Pessoa(command.Nome, command.Sobrenome);

                if (string.IsNullOrWhiteSpace(command.Nome) ||
                    string.IsNullOrWhiteSpace(command.Sobrenome))
                {
                    this.AddNotification("Nome e Sobrenome", "Nome e Sobrenome são obrigatórios");
                }
                if (this.Invalid)
                {
                    return;
                }

                pessoa.Genero       = command.Genero;
                pessoa.Etnia        = command.Etnia;
                pessoa.Escolaridade = command.Escolaridade;
                pessoa.Regiao       = command.Regiao;

                if (command.Regiao == 0)
                {
                    this.AddNotification("Regiao", "A região é obrigatória para o censo");
                }
                if (this.Invalid)
                {
                    return;
                }

                pessoa.Pai = ExistePai(command);
                pessoa.Mae = ExisteMae(command);

                //Adiciona a pessoa
                _pessoaRepository.AdicionaOuAtualiza(pessoa, pessoa.Pai.PessoaId, pessoa.Mae.PessoaId);

                //Adiciona os filhos
                AdicionaFilhos(command.Filhos, command.Genero, pessoa);

                trans.Complete();
            }
        }
예제 #10
0
        public async Task Criar_CadastroDoCenso()
        {
            //Consigo inserir minha irmã que não possui filhos
            var pessoa = new CriarPessoaCommand
            {
                Nome         = "Milena",
                Sobrenome    = "Parra",
                NomePai      = "Mauro",
                SobrenomePai = "Parra",
                NomeMae      = "Naira",
                SobrenomeMae = "Parra",
                Escolaridade = EEscolaridade.SuperiorCompleto,
                Etnia        = EEtnia.Branco,
                Genero       = EGenero.Feminino,
                Regiao       = ERegiao.Sudeste
            };

            var json = JsonConvert.SerializeObject(pessoa);
            var data = new StringContent(json, Encoding.UTF8, "application/json");

            var response = await _client.PostAsync("/api/v1/censo/criar", data);

            response.EnsureSuccessStatusCode();
        }
예제 #11
0
 private async Task <HttpResponseMessage> CriarEstudante(CriarPessoaCommand cmd)
 {
     return(await DoPostRequest("/Pessoa/CriarPessoa", cmd));
 }
예제 #12
0
        public void Initialize()
        {
            _userService.CreateAdminUserWhenDontHaveManagerUsers();

            var criarEstudante = new CriarPessoaCommand()
            {
                Perfil         = Perfil.Estudante,
                Id             = Guid.NewGuid(),
                Nome           = "Felipe",
                Username       = "******",
                Password       = "******",
                CPF            = "12345678901",
                DataNascimento = DateTime.Now.AddYears(-23)
            };

            _mediator.Send(criarEstudante);

            var semestres = SalvaSemestres();
            var horarios  = SalvaHorarios();

            var computacaoCienciaProfissao = CriarSemestreDisciplina("Computação, Ciência e Profissão", 40, 1);
            var metodologiaCientifica      = CriarSemestreDisciplina("Metodologia Científica", 40, 1);
            var calculo = CriarSemestreDisciplina("Calculo", 80, 1);
            var calcVelotorialGeometriaAnaliticaPlana = CriarSemestreDisciplina("Calc. Vetorial e Geometria Analítica Plana", 80, 1);
            var algoritmos       = CriarSemestreDisciplina("Algoritmos", 80, 1);
            var logicaMatematica = CriarSemestreDisciplina("Introdução Logica Matematica", 80, 1);

            var calculo2 = CriarSemestreDisciplina("Calculo II", 80, 2, calculo);
            var calcVetorialGeometriaAnaliticaEspacial = CriarSemestreDisciplina("Calc. Vetorial e Geometria Analítica Espacial", 80, 2, calcVelotorialGeometriaAnaliticaPlana);
            var fisica = CriarSemestreDisciplina("Física I", 80, 2);
            var labSO  = CriarSemestreDisciplina("Lab SO", 40, 2);
            var labProgConstSoftware = CriarSemestreDisciplina("Lab Prog e Const Software", 80, 2, algoritmos);

            var redacaoEmpresarial       = CriarSemestreDisciplina("Redação Empresarial", 40, 3);
            var psicologiaOrganizacional = CriarSemestreDisciplina("Psicologia Organizacional", 40, 3);
            var calculo3        = CriarSemestreDisciplina("Cálculo III", 80, 3, calculo2);
            var fisica2         = CriarSemestreDisciplina("Física II", 80, 3, fisica);
            var arqComputadores = CriarSemestreDisciplina("Arq. Computadores", 80, 3, labSO);
            var estruturaDados1 = CriarSemestreDisciplina("Estrutura Dados I ", 80, 3);

            var algebraLinear            = CriarSemestreDisciplina("Álgebra Linear", 80, 4);
            var fisica3                  = CriarSemestreDisciplina("Física III", 80, 4, fisica2);
            var fundamentosEngDeSoftware = CriarSemestreDisciplina("Fundamentos de Eng. De Software", 80, 4);
            var programacaoWeb           = CriarSemestreDisciplina("Programação Web", 80, 4);
            var estruturaDados2          = CriarSemestreDisciplina("Estrutura de Dados II", 80, 4, estruturaDados1);

            var eqDifSeries               = CriarSemestreDisciplina("Eq Diferen Séries", 80, 5);
            var fundProbabEstatística     = CriarSemestreDisciplina("Fund Probab Estatística", 40, 5);
            var teoriaDaComputacao        = CriarSemestreDisciplina("Teoria da Computação", 40, 5);
            var bancoDeDados              = CriarSemestreDisciplina("Banco de Dados I", 80, 5);
            var fundamentosDeAutomacao    = CriarSemestreDisciplina("Fundamentos de Automação", 80, 5);
            var fundSistEletroEletronicos = CriarSemestreDisciplina("Fund Sist ElétroEletrônicos", 80, 5);

            var bancoDeDados2        = CriarSemestreDisciplina("Banco de Dados II", 40, 6, bancoDeDados);
            var sistemasOperacionais = CriarSemestreDisciplina("Sistemas Operacionais", 80, 6);
            var labProgConstSoftOO   = CriarSemestreDisciplina("Lab Prog Const Soft OO", 80, 6);
            var sistemasDeControle   = CriarSemestreDisciplina("Sistemas de Controle", 80, 6);
            var fundSistDigitais     = CriarSemestreDisciplina("Fund Sist Digitais", 80, 6);

            var eticaNaEngenharia = CriarSemestreDisciplina("Ética na Engenharia", 40, 7);
            var fisica4           = CriarSemestreDisciplina("Física IV", 80, 7, fisica3);
            var arquiteturaModelagemDeSoftware = CriarSemestreDisciplina("Arquitetura e Modelagem de Software", 80, 7, fisica3);
            var labProjSistDig = CriarSemestreDisciplina("Lab Proj Sist Dig", 80, 7);
            var engenhariaDeSistemasEmbarcados = CriarSemestreDisciplina("Engenharia de Sistemas Embarcados", 80, 7);

            var fundamentosDeAdministracao         = CriarSemestreDisciplina("Fundamentos de Administração", 40, 8);
            var redesDeComputadores                = CriarSemestreDisciplina("Redes de Computadores", 80, 8);
            var dispositivosProgramáveisMicroMicro = CriarSemestreDisciplina("Dispositivos Programáveis e Micro & micro", 80, 8);
            var projetoIntegração = CriarSemestreDisciplina("Projeto de Integração", 80, 8);
            var tcc1 = CriarSemestreDisciplina("TCC I", 40, 8);

            var gereneciaDeProjeto             = CriarSemestreDisciplina("Gerência de Projetos", 80, 9);
            var oHomemFenomenoReligioso        = CriarSemestreDisciplina("O Homem e o Fenômeno Religioso", 40, 9);
            var sistemaOperacionaisDeTempoReal = CriarSemestreDisciplina("Sistemas Operacionais de Tempo Real", 40, 9);
            var teleprocessamento               = CriarSemestreDisciplina("Teleprocessamento", 40, 9);
            var fundamentosDeRobotica           = CriarSemestreDisciplina("Fundamentos de Robótica", 80, 9);
            var laboratorioDeSistemasEmbarcados = CriarSemestreDisciplina("Laboratório de Sistemas Embarcados", 80, 9);
            var tcc2 = CriarSemestreDisciplina("TCC II", 40, 9, tcc1);

            var fundamentosDeEconomia     = CriarSemestreDisciplina("Fundamentos de Economia", 40, 10);
            var inteligenciaArtifical     = CriarSemestreDisciplina("Inteligência Artificial", 40, 10);
            var sistemaDistribuidos       = CriarSemestreDisciplina("Sistemas Distribuídos", 40, 10);
            var auditoriaSegurancaDeRedes = CriarSemestreDisciplina("Auditoria e Segurança de Redes", 40, 10);
            var estagioSupervisionado     = CriarSemestreDisciplina("Estágio Supervisionado", 80, 10);
            var tcc3 = CriarSemestreDisciplina("TCC II", 40, 10, tcc2);

            var grade = new Grade()
            {
                Id  = Guid.NewGuid(),
                Ano = 2020,
                SemestreDisciplinas = new List <SemestreDisciplina>()
                {
                    computacaoCienciaProfissao,
                    metodologiaCientifica,
                    calculo,
                    calcVelotorialGeometriaAnaliticaPlana,
                    algoritmos,
                    logicaMatematica,
                    calculo2,
                    calcVetorialGeometriaAnaliticaEspacial,
                    fisica,
                    labSO,
                    labProgConstSoftware,
                    redacaoEmpresarial,
                    psicologiaOrganizacional,
                    calculo3,
                    fisica2,
                    arqComputadores,
                    estruturaDados1,
                    algebraLinear,
                    fisica3,
                    fundamentosEngDeSoftware,
                    programacaoWeb,
                    estruturaDados2,
                    eqDifSeries,
                    fundProbabEstatística,
                    teoriaDaComputacao,
                    bancoDeDados,
                    fundamentosDeAutomacao,
                    fundSistEletroEletronicos,
                    bancoDeDados2,
                    sistemasOperacionais,
                    labProgConstSoftOO,
                    sistemasDeControle,
                    fundSistDigitais,
                    eticaNaEngenharia,
                    fisica4,
                    arquiteturaModelagemDeSoftware,
                    labProjSistDig,
                    engenhariaDeSistemasEmbarcados,
                    fundamentosDeAdministracao,
                    redesDeComputadores,
                    dispositivosProgramáveisMicroMicro,
                    projetoIntegração,
                    tcc1,
                    gereneciaDeProjeto,
                    oHomemFenomenoReligioso,
                    sistemaOperacionaisDeTempoReal,
                    teleprocessamento,
                    fundamentosDeRobotica,
                    laboratorioDeSistemasEmbarcados,
                    tcc2,
                    fundamentosDeEconomia,
                    inteligenciaArtifical,
                    sistemaDistribuidos,
                    auditoriaSegurancaDeRedes,
                    estagioSupervisionado,
                    tcc3
                }
            };

            _f7DbContext.Add(grade);

            var curso = new Curso()
            {
                Id     = Guid.NewGuid(),
                Nome   = "Engenharia da Computação",
                Grades = new[] { grade },
            };

            grade.Curso = curso;
            _f7DbContext.Add(curso);


            var professorRogerio = new PessoaUsuario()
            {
                Id     = Guid.NewGuid(),
                Nome   = "Rogerio",
                Perfil = Perfil.Professor,
            };
            var professorAfonso = new PessoaUsuario()
            {
                Id     = Guid.NewGuid(),
                Nome   = "Afonso",
                Perfil = Perfil.Professor,
            };

            var turmaDeCalculo = new Turma()
            {
                Sala       = "101A",
                Id         = Guid.NewGuid(),
                Disciplina = calculo.Disciplina,
                Semestre   = semestres.semestre,
                Professor  = professorAfonso,
            };

            _f7DbContext.TurmaDbSet.Add(turmaDeCalculo);

            var turmaDeCalculo2 = new Turma()
            {
                Sala       = "101A",
                Id         = Guid.NewGuid(),
                Disciplina = calculo2.Disciplina,
                Semestre   = semestres.semestre2,
                Professor  = professorAfonso,
            };

            _f7DbContext.TurmaDbSet.Add(turmaDeCalculo);

            var turmaDeLogicaMatematica = new Turma()
            {
                Sala       = "102A",
                Id         = Guid.NewGuid(),
                Disciplina = logicaMatematica.Disciplina,
                Semestre   = semestres.semestre2,
                Professor  = professorRogerio,
            };
            var turmaDeAlgoritmos = new Turma()
            {
                Sala       = "103A",
                Id         = Guid.NewGuid(),
                Disciplina = algoritmos.Disciplina,
                Semestre   = semestres.semestre2,
                Professor  = professorRogerio
            };

            var turmaDeCalculoHorarios = new List <TurmaHorario>
            {
                new TurmaHorario {
                    Horario = horarios[0], Turma = turmaDeCalculo
                },
                new TurmaHorario {
                    Horario = horarios[1], Turma = turmaDeCalculo
                },

                new TurmaHorario {
                    Horario = horarios[6], Turma = turmaDeCalculo2
                },
                new TurmaHorario {
                    Horario = horarios[7], Turma = turmaDeCalculo2
                },

                new TurmaHorario {
                    Horario = horarios[1], Turma = turmaDeLogicaMatematica
                },
                new TurmaHorario {
                    Horario = horarios[2], Turma = turmaDeLogicaMatematica
                },

                new TurmaHorario {
                    Horario = horarios[4], Turma = turmaDeAlgoritmos
                },
                new TurmaHorario {
                    Horario = horarios[5], Turma = turmaDeAlgoritmos
                }
            };

            _f7DbContext.AddRange(turmaDeCalculoHorarios);

            var inscricao = new Inscricao()
            {
                Completa      = true,
                P1            = 10,
                P2            = 9,
                Turma         = turmaDeCalculo,
                DataInscricao = DateTime.Now.AddMonths(-6),
                Id            = Guid.NewGuid(),
            };

            var matricula = new Matricula()
            {
                Grade           = grade,
                Id              = Guid.NewGuid(),
                PessoaUsuarioId = criarEstudante.Id,
                Ativo           = true,
                Inscricoes      = new List <Inscricao>()
                {
                    inscricao
                },
            };

            inscricao.MatriculaId = matricula.Id;

            _f7DbContext.Add(matricula);
            _f7DbContext.Add(inscricao);

            var config = new Configuration()
            {
                NotaMedia     = 6,
                SemestreAtual = semestres.semestre2
            };

            _f7DbContext.Configurations.Add(config);

            _f7DbContext.SaveChanges();
        }
예제 #13
0
 public IActionResult CriarPessoa([FromBody] CriarPessoaCommand cmd)
 {
     _mediator.Send(cmd);
     return(Ok());
 }