Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            var iesUTFPR = new Instituicao()
            {
                Nome     = "UTFPR",
                Endereco = new Endereco()
                {
                    Rua    = "Brasil",
                    Numero = "1000"
                }
            };

            var iesCC = new Instituicao()
            {
                Nome     = "Casa do Código",
                Endereco = new Endereco()
                {
                    Bairro = "Liberdade"
                }
            };

            var dptoEnsino = new Departamento()
            {
                Nome = "Computação"
            };

            var dptoAlimentos = new Departamento();

            dptoAlimentos.Nome = "Alimentos";

            var dptoRevisao = new Departamento();

            dptoRevisao.Nome = "Revisão Escrita";

            iesUTFPR.RegistrarDepartamento(dptoEnsino);
            iesUTFPR.RegistrarDepartamento(dptoAlimentos);

            iesCC.RegistrarDepartamento(dptoRevisao);

            Console.WriteLine("UTFPR");
            for (int i = 0; i < iesUTFPR.ObterQuantidadeDeparetamentos(); i++)
            {
                Console.WriteLine($"==> {iesUTFPR.DepartamentoPorIndice(i).Nome}");
            }

            Console.WriteLine("Casa do Código");
            for (int i = 0; i < iesCC.ObterQuantidadeDeparetamentos(); i++)
            {
                Console.WriteLine($"==> {iesCC.DepartamentoPorIndice(i).Nome}");
            }

            Console.WriteLine();
            Console.WriteLine("=======================================");

            dptoAlimentos.RegistrarCurso(
                new Graduacao {
                Nome         = "Tecnologia de Alimentos",
                CargaHoraria = 2000
            }
                );

            dptoAlimentos.RegistrarCurso(
                new Graduacao
            {
                Nome         = "Engenharia de Alimentos",
                CargaHoraria = 3000
            }
                );

            Console.WriteLine();
            Console.WriteLine($"Cursos no departamento de {dptoAlimentos.Nome}");

            foreach (var curso in dptoAlimentos.Cursos)
            {
                Console.WriteLine($"==> {curso.Nome} ({curso.CargaHoraria}h)");
            }

            Console.WriteLine();
            Console.WriteLine("=======================================");
            Console.WriteLine();

            var ctAlimentos = new Graduacao()
            {
                Nome         = "Tecnologia em Alimentos",
                CargaHoraria = 2000
            };

            if (!dptoAlimentos.Cursos.Contains(ctAlimentos))
            {
                dptoAlimentos.RegistrarCurso(ctAlimentos);
            }

            dptoAlimentos.FecharDepartamento();
            dptoAlimentos = null;
            Console.WriteLine();
            Console.WriteLine("O departamento de alimentos foi fechado");

            Console.WriteLine();
            Console.WriteLine("=======================================");
            Console.WriteLine();

            var cursoCC = new Graduacao()
            {
                Nome         = "Ciência da Computação",
                CargaHoraria = 3000
            };

            cursoCC.RegistrarDisciplina(new Disciplina()
            {
                Nome         = "Algoritmos",
                CargaHoraria = 80
            });
            cursoCC.RegistrarDisciplina(new Disciplina()
            {
                Nome         = "Orientação a Objetos",
                CargaHoraria = 60
            });
            cursoCC.RegistrarDisciplina(new Disciplina()
            {
                Nome         = "Orientação a Objetos",
                CargaHoraria = 80
            });
            cursoCC.RegistrarDisciplina(new Disciplina()
            {
                Nome         = "Estrutura de Dados",
                CargaHoraria = 80
            });
            cursoCC.RegistrarDisciplina(new Disciplina()
            {
                Nome         = "Programação para Web",
                CargaHoraria = 80
            });

            Console.WriteLine($"O curso {cursoCC.Nome} possui {cursoCC.Disciplinas.Count} disciplinas: ");
            foreach (var d in cursoCC.Disciplinas)
            {
                Console.WriteLine($"==> {d.Nome} ({d.CargaHoraria})");
            }

            Console.WriteLine();
            Console.WriteLine("=======================================");
            Console.WriteLine();

            var graduacao = new Graduacao()
            {
                Nome = "Curso de Graduação"
            };
            var latoSensu = new LatoSensu()
            {
                Nome = "Curso de Lato Sensu"
            };
            var strictoSensu = new StrictoSensu()
            {
                Nome = "Curso de Stricto Sensu"
            };

            var repositorioCursos = new RepositorioCurso();

            repositorioCursos.Gravar(graduacao);
            repositorioCursos.Gravar(latoSensu);
            repositorioCursos.Gravar(strictoSensu);

            Console.WriteLine("Cursos gravados");
            foreach (var curso in repositorioCursos.ObterTodos())
            {
                Console.WriteLine($"==> {curso.Nome} ({curso.GetType()})");
            }

            Console.WriteLine();
            Console.WriteLine("=======================================");
            Console.WriteLine();

            var turma = new Turma()
            {
                CodigoTurma  = "1",
                PeriodoCurso = Enum.PeriodoCursoEnum.Primeiro,
                TurnoTurma   = Enum.TurnoTurmaEnum.Matutino
            };

            var aluno = new Aluno()
            {
                RegistroAcademico = "1",
                Nome = "Asdrubal"
            };

            cursoCC.RegistarAluno(aluno);
            cursoCC.RegistrarTurma(turma);

            foreach (var d in cursoCC.Disciplinas)
            {
                try
                {
                    turma.RegistrarMatricula(new Matricula()
                    {
                        Aluno      = aluno,
                        Disciplina = d
                    });
                } catch (Exception ex)
                {
                    Console.WriteLine();
                    Console.WriteLine(ex.Message);
                    Console.WriteLine();
                }
            }

            Console.WriteLine("Registro de matrículas concluído");

            Console.WriteLine();
            Console.WriteLine("=======================================");
            Console.WriteLine();

            Console.Write("Pressione qualquer tecla para continuar");
            Console.ReadKey();
        }