public ICommandResult Handler(CadastrarProfessorTurmaCommand command)
        {
            command.Validar();

            if (command.Invalid)
            {
                return(new GenericCommandResult(false, "Dados Inválidos!", command.Notifications));
            }

            var Professor = _repositorioProfessor.BuscarProfessorPorId(command.IdProfessor);

            if (Professor == null)
            {
                return(new GenericCommandResult(false, "Professor não encontrado", null));
            }

            var turma = _repositorioTurma.BuscarTurmaPorId(command.IdTurma);

            if (turma == null)
            {
                return(new GenericCommandResult(false, "Turma não encontrada", null));
            }

            var ProfessorTurma = new ProfessorTurma(command.IdTurma, command.IdProfessor);

            if (ProfessorTurma.Valid)
            {
                _repositorio.AdicionarProfessorATurma(ProfessorTurma);
            }

            return(new GenericCommandResult(true, "Professor inserido na turma com sucesso", ProfessorTurma));
        }
Exemplo n.º 2
0
        public IQueryResult Handle(ListarTurmasDoProfessorQuery command)
        {
            command.Validate();

            if (command.Invalid)
            {
                return(new GenericQueryResult(false, "Dados inválidos", command.Notifications));
            }

            var turmasDoProfessor = _repositorio.ListarTurmasDoProfessor(command.IdProfessor);

            var result = turmasDoProfessor.Select(tal =>
            {
                var turma = _repositorioTurma.BuscarTurmaPorId(tal.IdTurma);

                var Professor = _repositorioProfessor.BuscarProfessorPorId(tal.IdProfessor);

                var horarios = _repositorioHorario.BuscarHorarioPorIdTurma(turma.Id);

                return(new ListaTurmasDoProfessorResult()
                {
                    Professor = new BuscarProfessorResult
                    {
                        Id = Professor.Id,
                        NomeUsuario = Professor.NomeUsuario,
                        Email = Professor.Email,
                        Telefone = Professor.Telefone,
                        FotoProfessor = Professor.FotoProfessor
                    },
                    Turmas = turmasDoProfessor.Select(tam =>

                                                      new ListarTurmaResult
                    {
                        Id = turma.Id,
                        Titulo = turma.Titulo,
                        Descricao = turma.Descricao,
                        Semestre = turma.Semestre.ToString(),
                        Horarios = turma.Horarios.Select(hrr =>

                                                         new ListarHorarioResult()
                        {
                            Id = hrr.Id,
                            DiaSemana = hrr.DiaSemana.ToString(),
                            HoraInicio = hrr.HoraInicio,
                            HoraTermino = hrr.HoraTermino
                        }

                                                         ).ToList()
                    }

                                                      ).ToList()
                });
            });

            return(new GenericQueryResult(true, "Turmas do Professor", result));
        }
        public IQueryResult Handle(BuscarProfessorTurmaQuery command)
        {
            command.Validate();

            if (command.Invalid)
            {
                return(new GenericQueryResult(false, "Dados inválidos", command.Notifications));
            }

            var procurarProfessorTurma = _repositorio.BuscarProfessorTurmaPorId(command.Id);

            if (procurarProfessorTurma == null)
            {
                return(new GenericQueryResult(false, "Professor turma não encontrado", null));
            }

            var Professor = _repositorioProfessor.BuscarProfessorPorId(procurarProfessorTurma.IdProfessor);

            var turma = _repositorioTurma.BuscarTurmaPorId(procurarProfessorTurma.IdTurma);

            var result = new BuscarProfessorTurmaResult
            {
                Id        = procurarProfessorTurma.Id,
                Professor = new BuscarProfessorResult
                {
                    Id            = Professor.Id,
                    NomeUsuario   = Professor.NomeUsuario,
                    Email         = Professor.Email,
                    Telefone      = Professor.Telefone,
                    FotoProfessor = Professor.FotoProfessor
                },
                Turma = new BuscarTurmaResult
                {
                    Id        = turma.Id,
                    Titulo    = turma.Titulo,
                    Descricao = turma.Descricao,
                    Semestre  = turma.Semestre.ToString(),
                    Horarios  = turma.Horarios.Select(hrr =>

                                                      new ListarHorarioResult()
                    {
                        Id          = hrr.Id,
                        DiaSemana   = hrr.DiaSemana.ToString(),
                        HoraInicio  = hrr.HoraInicio,
                        HoraTermino = hrr.HoraTermino
                    }

                                                      ).ToList()
                }
            };

            return(new GenericQueryResult(true, "Dados do professor turma", result));
        }
Exemplo n.º 4
0
        public IQueryResult Handle(BuscarProfessorQuery command)
        {
            command.Validate();

            if (command.BuscarEmail != null)
            {
                if (command.Invalid)
                {
                    return(new GenericQueryResult(false, "Dados inválidos", command.Notifications));
                }

                var professorProcuradoEmail = _repositorio.BuscarProfessorPorEmail(command.BuscarEmail);

                if (professorProcuradoEmail == null)
                {
                    return(new GenericQueryResult(false, "Professor não encontrado", null));
                }

                var professorEmailResult = new BuscarProfessorResult
                {
                    Id            = professorProcuradoEmail.Id,
                    NomeUsuario   = professorProcuradoEmail.NomeUsuario,
                    Email         = professorProcuradoEmail.Email,
                    Telefone      = professorProcuradoEmail.Telefone,
                    FotoProfessor = professorProcuradoEmail.FotoProfessor,
                };

                return(new GenericQueryResult(true, "Dados do professor", professorEmailResult));
            }

            var professorProcurado = _repositorio.BuscarProfessorPorId(command.BuscarId);

            if (professorProcurado == null)
            {
                return(new GenericQueryResult(false, "Professor não encontrado", null));
            }

            var professorResult = new BuscarProfessorResult
            {
                Id            = professorProcurado.Id,
                NomeUsuario   = professorProcurado.NomeUsuario,
                Email         = professorProcurado.Email,
                Telefone      = professorProcurado.Telefone,
                FotoProfessor = professorProcurado.FotoProfessor,
            };

            return(new GenericQueryResult(true, "Dados do professor", professorResult));
        }
Exemplo n.º 5
0
        public IQueryResult Handle(ListarProfessoresDaTurmaQuery command)
        {
            command.Validate();

            if (command.Invalid)
            {
                return(new GenericQueryResult(false, "Dados inválidos", command.Notifications));
            }

            var ProfessoresDaTurma = _repositorio.ListarProfessoresDaTurma(command.IdTurma);

            var result = ProfessoresDaTurma.Select(alt =>
            {
                var turma = _repositorioTurma.BuscarTurmaPorId(alt.IdTurma);

                var Professor = _repositorioProfessor.BuscarProfessorPorId(alt.IdProfessor);

                return(new ListarProfessoresDaTurmaResult()
                {
                    Turma = new BuscarTurmaResult
                    {
                        Id = turma.Id,
                        Titulo = turma.Titulo,
                        Descricao = turma.Descricao,
                        Semestre = turma.Semestre.ToString(),
                    },
                    Professores = ProfessoresDaTurma.Select(atm =>

                                                            new ListarProfessorResult
                    {
                        Id = Professor.Id,
                        NomeUsuario = Professor.NomeUsuario,
                        Email = Professor.Email,
                        Telefone = Professor.Telefone,
                        FotoProfessor = Professor.FotoProfessor
                    }

                                                            ).ToList()
                });
            });

            return(new GenericQueryResult(true, "Lista dos Professores da turma", result));
        }
        public ICommandResult Handler(AlterarProfessorTurmaCommand command)
        {
            command.Validar();

            if (command.Invalid)
            {
                return(new GenericCommandResult(false, "Dados Inválidos!", command.Notifications));
            }

            var professorTurma = _repositorio.BuscarProfessorTurmaPorId(command.Id);

            if (professorTurma == null)
            {
                return(new GenericCommandResult(true, "Turma do professor não encontrada", null));
            }

            var professor = _repositorioProfessor.BuscarProfessorPorId(command.IdProfessor);

            if (professor == null)
            {
                return(new GenericCommandResult(false, "Professor não encontrado", null));
            }

            var turma = _repositorioTurma.BuscarTurmaPorId(command.IdTurma);

            if (turma == null)
            {
                return(new GenericCommandResult(false, "Turma não encontrada", null));
            }

            professorTurma.AlterarrofessorTurma(command.IdTurma, command.IdProfessor);

            if (professorTurma.Valid)
            {
                _repositorio.AdicionarProfessorATurma(professorTurma);
            }

            _repositorio.AlterarProfessorTurma(professorTurma);

            return(new GenericCommandResult(true, "Turma do professor", professorTurma));
        }
        public ICommandResult Handler(ExcluirProfessorCommand command)
        {
            command.Validar();

            //Caso seja inválido, recebemos quando são os valores incorretos identificados por ele
            if (command.Invalid)
            {
                return(new GenericCommandResult(false, "Informe um id correto", command.Notifications));
            }

            var professorExiste = _professorRepositorio.BuscarProfessorPorId(command.Id);

            if (professorExiste == null)
            {
                return(new GenericCommandResult(false, "Professor não encontrado", null));
            }

            _professorRepositorio.ExcluirProfessor(professorExiste);

            return(new GenericCommandResult(true, "Professor excluído com sucesso", professorExiste));
        }
        public ICommandResult Handler(AlterarProfessorCommand command)
        {
            command.Validar();

            if (command.Invalid)
            {
                return(new GenericCommandResult(false, "Dados Inválidos!", command.Notifications));
            }

            var professorExiste = _professorRepositorio.BuscarProfessorPorId(command.Id);

            if (professorExiste == null)
            {
                return(new GenericCommandResult(false, "Professor não encontrado", null));
            }

            if (command.Email != professorExiste.Email)
            {
                var novoEmailExistente = _professorRepositorio.BuscarProfessorPorEmail(command.Email);

                if (novoEmailExistente != null)
                {
                    return(new GenericCommandResult(false, "Este e-mail já está vinculado a uma conta, informe outro email", command.Notifications));
                }
            }

            professorExiste.AlterarProfessor(command.Nome, command.Email, command.Telefone, command.FotoProfessor);

            if (professorExiste.Invalid)
            {
                return(new GenericCommandResult(false, "Dados inválidos", professorExiste.Notifications));
            }

            _professorRepositorio.AlterarProfessor(professorExiste);

            return(new GenericCommandResult(true, "Dados alterador com sucesso", professorExiste));
        }