public static void Add(this ListaDeMatricula lista, Aluno aluno) =>
 lista.Matricular(aluno);
        public async void Main()
        {
            WriteLine("11. Métodos De Extensão Para Inicializadores De Coleção");

            StreamWriter logAplicacao = new StreamWriter("LogAplicacao.txt");

            try
            {
                await logAplicacao.WriteLineAsync("Aplicação está iniciando...");

                Aluno aluno = new Aluno("Marty", "McFly", new DateTime(1968, 6, 12))
                {
                    Endereco = "9303 Lyon Drive Hill Valley CA",
                    Telefone = "555-4385"
                };

                await logAplicacao.WriteLineAsync($"Aluno {aluno.NomeCompleto} foi criado...");

                WriteLine(aluno.Nome);
                WriteLine(aluno.Sobrenome);

                WriteLine(aluno.NomeCompleto);
                WriteLine("Idade: {0}", aluno.GetIdade());
                WriteLine(aluno.DadosPessoais);

                aluno.AdicionarAvaliacao(new Avaliacao(1, "GEO", 8));
                aluno.AdicionarAvaliacao(new Avaliacao(1, "MAT", 7));
                aluno.AdicionarAvaliacao(new Avaliacao(1, "HIS", 9));

                foreach (var avaliacao in aluno.Avaliacoes)
                {
                    Console.WriteLine(avaliacao);
                }

                ImprimirMelhorNota(aluno);

                Aluno aluno2 = new Aluno("Bart", "Simpson");

                await logAplicacao.WriteLineAsync($"Aluno {aluno2.NomeCompleto} foi criado...");

                ImprimirMelhorNota(aluno2);

                aluno.PropertyChanged += Aluno_PropertyChanged;

                aluno.Endereco = "Rua Vergueiro, 3185";
                aluno.Telefone = "555-1234";

                Aluno aluno3 = new Aluno("Charlie", "Brown");

                await logAplicacao.WriteLineAsync("Aluno Charlie Brown foi criado...");

                ListaDeMatricula listaDeMatricula = new ListaDeMatricula
                {
                    aluno,
                    aluno2,
                    aluno3
                };

                WriteLine("ALUNOS DA LISTA");
                WriteLine("===============");

                foreach (var a in listaDeMatricula)
                {
                    WriteLine(a.DadosPessoais);
                }
            }
            catch (ArgumentException e) when(e.Message.Contains("não informado"))
            {
                string msg = $"Parâmetro {e.ParamName} não foi informado!";
                await logAplicacao.WriteLineAsync(msg);

                WriteLine(msg);
            }
            catch (ArgumentException)
            {
                string msg = "Parâmetro com problema!";
                await logAplicacao.WriteLineAsync(msg);

                WriteLine(msg);
            }
            catch (Exception e)
            {
                await logAplicacao.WriteLineAsync(e.ToString());

                WriteLine(e.ToString());
            }
            finally
            {
                await logAplicacao.WriteLineAsync("Aplicação terminou.");

                logAplicacao.Dispose();
            }
        }
Exemple #3
0
 public static void Add(this ListaDeMatricula e, Aluno s)
 => e.Matricular(s);
Exemple #4
0
        public async void Main()
        {
            Console.WriteLine("11. Metodos De Extensão Para Inicializadores De Coleção");

            StreamWriter logger = new StreamWriter("LogDoCurso.txt");

            try
            {
                Aluno marty = new Aluno("Marty", "McFly", new DateTime(1968, 06, 12))
                {
                    Endereco = "9303 Lyon Drive Hill Valley CA",
                    Telefone = "555-4385"
                };

                await logger.WriteLineAsync("Aluno Marty McFly criado");

                Console.WriteLine(marty.Nome);
                Console.WriteLine(marty.Sobrenome);
                Console.WriteLine(marty.DadosPessoais);
                Avaliacao melhorAvaliacao = GetMelhorNota(marty);

                Console.WriteLine("Melhor Nota: {0}", melhorAvaliacao?.Nota);

                marty.AdicionarAvaliacao(new Avaliacao(1, "GEO", 8));
                marty.AdicionarAvaliacao(new Avaliacao(1, "MAT", 6));
                marty.AdicionarAvaliacao(new Avaliacao(1, "HIS", 7));

                melhorAvaliacao = GetMelhorNota(marty);

                Console.WriteLine("Melhor Nota: {0}", melhorAvaliacao?.Nota);

                foreach (var avaliacao in marty.Avaliacoes)
                {
                    Console.WriteLine(avaliacao);
                }

                marty.PropertyChanged += (sender, eventArgs) =>
                {
                    Console.WriteLine($"Propriedade {eventArgs.PropertyName} mudou!");
                };
                marty.Endereco = "novo endereço";
                marty.Telefone = "7777777";

                //Aluno biff = new Aluno("Biff", "");


                ListaDeMatricula alunos = new ListaDeMatricula
                {
                    new Aluno("Lessie", "Crosby"),
                    new Aluno("Vicki", "Petty"),
                    new Aluno("Ofelia", "Hobbs"),
                    new Aluno("Leah", "Kinney"),
                    new Aluno("Alton", "Stoker"),
                    new Aluno("Luella", "Ferrell"),
                    new Aluno("Marcy", "Riggs"),
                    new Aluno("Ida", "Bean"),
                    new Aluno("Ollie", "Cottle"),
                    new Aluno("Tommy", "Broadnax"),
                    new Aluno("Jody", "Yates"),
                    new Aluno("Marguerite", "Dawson"),
                    new Aluno("Francisca", "Barnett"),
                    new Aluno("Arlene", "Velasquez"),
                    new Aluno("Jodi", "Green"),
                    new Aluno("Fran", "Mosley"),
                    new Aluno("Taylor", "Nesmith"),
                    new Aluno("Ernesto", "Greathouse"),
                    new Aluno("Margret", "Albert"),
                    new Aluno("Pansy", "House"),
                    new Aluno("Sharon", "Byrd"),
                    new Aluno("Keith", "Roldan"),
                    new Aluno("Martha", "Miranda"),
                    new Aluno("Kari", "Campos"),
                    new Aluno("Muriel", "Middleton"),
                    new Aluno("Georgette", "Jarvis"),
                    new Aluno("Pam", "Boyle"),
                    new Aluno("Deena", "Travis"),
                    new Aluno("Cary", "Totten"),
                    new Aluno("Althea", "Goodwin")
                };
                //alunos.Matricular(new Aluno("Lessie", "Crosby"));
                //alunos.Matricular(new Aluno("Vicki", "Petty"));
                //alunos.Matricular(new Aluno("Ofelia", "Hobbs"));
                //alunos.Matricular(new Aluno("Leah", "Kinney"));
                //alunos.Matricular(new Aluno("Alton", "Stoker"));
                //alunos.Matricular(new Aluno("Luella", "Ferrell"));
                //alunos.Matricular(new Aluno("Marcy", "Riggs"));
                //alunos.Matricular(new Aluno("Ida", "Bean"));
                //alunos.Matricular(new Aluno("Ollie", "Cottle"));
                //alunos.Matricular(new Aluno("Tommy", "Broadnax"));
                //alunos.Matricular(new Aluno("Jody", "Yates"));
                //alunos.Matricular(new Aluno("Marguerite", "Dawson"));
                //alunos.Matricular(new Aluno("Francisca", "Barnett"));
                //alunos.Matricular(new Aluno("Arlene", "Velasquez"));
                //alunos.Matricular(new Aluno("Jodi", "Green"));
                //alunos.Matricular(new Aluno("Fran", "Mosley"));
                //alunos.Matricular(new Aluno("Taylor", "Nesmith"));
                //alunos.Matricular(new Aluno("Ernesto", "Greathouse"));
                //alunos.Matricular(new Aluno("Margret", "Albert"));
                //alunos.Matricular(new Aluno("Pansy", "House"));
                //alunos.Matricular(new Aluno("Sharon", "Byrd"));
                //alunos.Matricular(new Aluno("Keith", "Roldan"));
                //alunos.Matricular(new Aluno("Martha", "Miranda"));
                //alunos.Matricular(new Aluno("Kari", "Campos"));
                //alunos.Matricular(new Aluno("Muriel", "Middleton"));
                //alunos.Matricular(new Aluno("Georgette", "Jarvis"));
                //alunos.Matricular(new Aluno("Pam", "Boyle"));
                //alunos.Matricular(new Aluno("Deena", "Travis"));
                //alunos.Matricular(new Aluno("Cary", "Totten"));
                //alunos.Matricular(new Aluno("Althea", "Goodwin"));

                Console.WriteLine();
                Console.WriteLine("ALUNOS DA TURMA");
                Console.WriteLine("===============");
                foreach (var aluno in alunos)
                {
                    Console.WriteLine(aluno.DadosPessoais);
                }
            }
            catch (ArgumentException exc) when(exc.Message.Contains("não informado"))
            {
                Console.WriteLine($"ERRO: O parâmetro '{exc.ParamName}' não foi informado!");
                await logger.WriteLineAsync("Erro: " + exc.ToString());
            }
            catch (Exception exc)
            {
                Console.WriteLine(exc.ToString());
                await logger.WriteLineAsync(exc.ToString());
            }
            finally
            {
                await logger.WriteLineAsync("O programa terminou.");

                logger.Dispose();
            }
        }
        public async void Main()
        {
            WriteLine("11. Metodos De Extensão Para Inicializadores De Coleção");
            StreamWriter logAplicacao = new StreamWriter("LogAplicacao.txt");

            try
            {
                await logAplicacao.WriteLineAsync("Aplicação esta iniciando...");

                Aluno aluno = new Aluno("Marty", "Hill", new DateTime(1999, 12, 06))
                {
                    Endereco = "9303 Lyon Driver Hill Valey Ca", Telefone = "444-45643"
                };


                await logAplicacao.WriteLineAsync("Aluno marty Hill foi criado...");

                WriteLine(aluno.Nome);
                WriteLine(aluno.Sobrenome);
                WriteLine(aluno.NomeCompleto);

                WriteLine("Idade: {0}", aluno.GetIdade());
                WriteLine(aluno.DadosPessoais);

                aluno.AdicionarAvaliacao(new Avaliacao(1, "GEO", 8.0));
                aluno.AdicionarAvaliacao(new Avaliacao(1, "MAT", 7.0));
                aluno.AdicionarAvaliacao(new Avaliacao(1, "HIS", 9.0));

                foreach (var avaliacao in aluno.Avaliacoes)
                {
                    Console.WriteLine(avaliacao.ToString());
                }

                Aluno aluno2 = new Aluno("Bart", "Simpson");

                await logAplicacao.WriteLineAsync("Aluno Bart Simpson foi criado...");

                ImprimirMelhorNota(aluno);
                ImprimirMelhorNota(aluno2);

                aluno.PropertyChanged += Aluno_PropertyChanged;

                aluno.Endereco = "Rua Vergueiro, 3185";
                aluno.Telefone = "555-1234";

                Aluno aluno3 = new Aluno("Charlie", "Brown");
                await logAplicacao.WriteLineAsync("Aluno Charilie Brown foi criado...");

                ListaDeMatricula listaDeMatricula = new ListaDeMatricula();

                //listaDeMatricula.Matricula(aluno);
                //listaDeMatricula.Matricula(aluno2);
                //listaDeMatricula.Matricula(aluno3);
            }
            catch (ArgumentException ex) when(ex.Message.Contains("não informado"))
            {
                string msg = $"Paramêtro { ex.ParamName } não foi informado!";
                await logAplicacao.WriteLineAsync(msg);

                Console.WriteLine(msg);
            }
            catch (ArgumentException ex)
            {
                string msg = "Parâmetro com problema!";
                await logAplicacao.WriteLineAsync(msg);

                Console.WriteLine(msg);
            }
            catch (Exception ex)
            {
                string msg = ex.ToString();
                await logAplicacao.WriteLineAsync(msg);

                Console.WriteLine(msg);
            }
            finally
            {
                await logAplicacao.WriteLineAsync("Aplicação terminou.");

                logAplicacao.Dispose();
            }
        }