Exemplo n.º 1
0
 public static void Add(this ListaDeMatricula lista, Aluno11 aluno)
 => lista.Matricular(aluno);
Exemplo n.º 2
0
        public async void Imprimir()
        {
            WriteLine("11. Métodos De Extensão Para Inicializadores De Coleção");

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

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

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

                await logAplicacao.WriteLineAsync("Aluno Marty criado");

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

                aluno.AdicionaAvaliacao(new Avaliacao07(1, "GEO", 8));
                aluno.AdicionaAvaliacao(new Avaliacao07(1, "MAT", 7));
                aluno.AdicionaAvaliacao(new Avaliacao07(1, "HIS", 9));
                ImprimirMelhorNota(aluno);

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

                Aluno11 aluno2 = null;
                await logAplicacao.WriteLineAsync("Aluno null foi criado");

                ImprimirMelhorNota(aluno2);

                aluno.PropertyChanged += Aluno_PropertyChanged;

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

                Aluno11 aluno3 = new Aluno11("Charles", "Brown");
                await logAplicacao.WriteLineAsync("Aluno Chales criado");

                ListaDeMatricula listaDeMatricula = new ListaDeMatricula
                {
                    aluno, aluno3
                };

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

                WriteLine(msg);
            }
            catch (ArgumentException exc)
            {
                const string msg = "parametro com Problema!";
                await logAplicacao.WriteLineAsync(msg);

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

                WriteLine(exc.ToString());
            }
            finally
            {
                await logAplicacao.WriteLineAsync("Aplicação Terminou!");

                logAplicacao.Dispose();
            }

            /* filtro de exceção web
             * public static async Task<string> FazerRequisicao()
             * {
             * var cliente = new System.Net.Http.HttpClient();
             * var streamTask = cliente.GetStringAsync("https://localHost:10000");
             * try
             * {
             * var resposta = await streamTask;
             * return resposta;
             * }
             * catch (System.Net.Http.HttpRequestException e) when (e.Message.Contains("404"))
             * {
             * return "Página não encontrada";
             * }
             * catch (System.Net.Http.HttpRequestException e) when (e.Message.Contains("301"))
             * {
             * return "Site Mudou de Endereço";
             * }
             * catch (System.Net.Http.HttpRequestException e) when (e.Message.Contains("304"))
             * {
             * return "Usar o Cache";
             * }
             * catch (System.Exception e)
             * {
             * return "Ocorreu uma exceção";
             * }
             * }
             * */
        }