예제 #1
0
 public static void Add(this ListaDeMatricula lista, Aluno aluno) => lista.Matricular(aluno);
예제 #2
0
        public async void Main()
        {
            //WriteLine("7. Expressões nameOf");
            WriteLine("9. Await Em Blocos Catch e Finally");

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

            try
            {
                await logAplicacao.WriteLineAsync("Iniciando aplicação");

                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 Marty McFly 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));
                ImprimirMelhorNota(aluno);

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

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

                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 criado");

                ListaDeMatricula listaDeMatricula = new ListaDeMatricula()
                {
                    aluno, aluno2, aluno3
                };
                //listaDeMatricula.Matricular(aluno);
                //listaDeMatricula.Matricular(aluno2);
                //listaDeMatricula.Matricular(aluno3);

                WriteLine("Alunos da Lista");

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

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

                WriteLine(msg);
            }
            catch (Exception exc)
            {
                WriteLine(exc.ToString());
                await logAplicacao.WriteLineAsync(exc.ToString());
            }
            finally
            {
                await logAplicacao.WriteLineAsync("Aplicação encerrada");

                logAplicacao.Dispose();
            }
        }