Example #1
0
        public async Task <IActionResult> Index(string pesquisa, DateTime?data)
        {
            if (string.IsNullOrEmpty(pesquisa) && !(data.HasValue))
            {
                return(View((await _vendaServico.GetAllAsync("Cliente", "Livro")).OrderByDescending(x => x.Data)));
            }

            List <Venda> filtro = new List <Venda>();

            if (!string.IsNullOrEmpty(pesquisa))
            {
                ViewData["pesquisa"] = pesquisa;
                filtro = await _vendaServico.FindAllAsync(x => x.Livro.Titulo.Contains(pesquisa, StringComparison.OrdinalIgnoreCase) || x.Livro.Autor.Nome.Contains(pesquisa, StringComparison.OrdinalIgnoreCase) || x.Cliente.Nome.Contains(pesquisa, StringComparison.OrdinalIgnoreCase) || x.Cliente.CPF.Contains(pesquisa), "Cliente", "Livro");
            }
            if (data.HasValue)
            {
                ViewData["date"] = data.Value.ToString("yyyy-MM-dd");
                foreach (var item in await _vendaServico.FindAllAsync(x => x.Data.Date == data.Value.Date, "Cliente", "Livro"))
                {
                    filtro.Add(item);
                }
            }
            if (filtro.Any())
            {
                filtro.OrderByDescending(x => x.Data);
            }

            return(View(filtro.Distinct().ToList()));
        }