public PartialViewResult Pesquisar(FiltroRelatorioViewModel filtroRelatorioViewModel)
        {
            var servicoPrestadoViewModels = _servicoPrestadoAppService
                                            .ObterServicoPrestadoPorFiltro(filtroRelatorioViewModel).ToList();

            return(PartialView("TabelaRelatorio", servicoPrestadoViewModels));
        }
        public IEnumerable <ServicoPrestadoViewModel> ObterServicoPrestadoPorFiltro(
            FiltroRelatorioViewModel filtroRelatorioViewModel)
        {
            var query = _servicoPrestadoService.GetAll().AsQueryable();

            if (filtroRelatorioViewModel.PeriodoDe != null)
            {
                query = query.Where(x => x.DataAtendimento >= filtroRelatorioViewModel.PeriodoDe);
            }

            if (filtroRelatorioViewModel.PeriodoAte != null)
            {
                query = query.Where(x => x.DataAtendimento <= filtroRelatorioViewModel.PeriodoAte.Value.AddHours(23).AddMinutes(59).AddSeconds(59));
            }

            if (!string.IsNullOrEmpty(filtroRelatorioViewModel.Bairro))
            {
                query = query.Where(x => x.ClienteFornecedor.Cliente.Bairro.Contains(filtroRelatorioViewModel.Bairro));
            }

            if (!string.IsNullOrEmpty(filtroRelatorioViewModel.Cidade))
            {
                query = query.Where(x => x.ClienteFornecedor.Cliente.Cidade.Contains(filtroRelatorioViewModel.Cidade));
            }

            if (!string.IsNullOrEmpty(filtroRelatorioViewModel.Estado))
            {
                query = query.Where(x => x.ClienteFornecedor.Cliente.Estado.Contains(filtroRelatorioViewModel.Estado));
            }

            if (filtroRelatorioViewModel.ClienteId != null)
            {
                query = query.Where(x => x.ClienteFornecedor.Cliente.Id == filtroRelatorioViewModel.ClienteId);
            }

            if (filtroRelatorioViewModel.ValorMaximo != null)
            {
                query = query.Where(x => x.ValorServico <= filtroRelatorioViewModel.ValorMaximo);
            }

            if (filtroRelatorioViewModel.ValorMinimo != null)
            {
                query = query.Where(x => x.ValorServico >= filtroRelatorioViewModel.ValorMinimo);
            }

            if (filtroRelatorioViewModel.TipoServicoId != null)
            {
                query = query.Where(x => x.TipoServico.Id == filtroRelatorioViewModel.TipoServicoId);
            }

            if (filtroRelatorioViewModel.FornecedorId != null)
            {
                query = query.Where(x => x.ClienteFornecedor.Fornecedor.Id == filtroRelatorioViewModel.FornecedorId);
            }

            var servicoPrestados = query.ToList();

            return(Mapper.Map <IEnumerable <ServicoPrestado>, IEnumerable <ServicoPrestadoViewModel> >(servicoPrestados));
        }