2
respostas

Problemas ao usar .FIRST(), Usei Try Catch para pegar o problema:

Código:

private Task ProcessaFormulario(HttpContext context)
        {
            try
            {
                var livro = new Livro()
                {
                    Titulo = context.Request.Query["titulo"].First(),
                    Autor = context.Request.Query["autor"].First(),
                };

                var repo = new LivroRepositorioCSV();
                repo.Incluir(livro);
                return context.Response.WriteAsync("O livro foi adicionado com sucesso");
            }catch (Exception ex)
            {
                return context.Response.WriteAsync(Convert.ToString(ex));
            }

        }

Este é o erro obtido:

System.InvalidOperationException: Sequence contains no elements at System.Linq.Enumerable.First[TSource](IEnumerable`1 source) at Alura.ListaLeitura.App.Startup.ProcessaFormulario(HttpContext context) in C:\Users\mpetrachin\Documents\Visual Studio 2017\WorkSpace\Alura.ListaLeitura\Alura.ListaLeitura.App\Startup.cs:line 60

Quando não uso o .First() ele insere um livro vazio.

2 respostas

O valor não esta sendo passado em context.Request.Query. Para utilizar o First você tem que garantir que context.Request.Query não seja nulo. Faça um Debug adicionando o breakpoint e verifique os valores passados.

Acredito que achei o problema, ele estava enviando os dados via Post, ao retirar o method e recompilar, funcionou.

<form action="/Cadastro/Incluir/">

Outro detalhe foi mudar nas propriedades de "livros.csv" para "Copy if Newer".

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software