private void PesquiseEGereRelatorio()
        {
            long? IDCliente = null;
            long? IDGrupoDeAtividade= null;
            IList<string> IDsDosDespachos = null;

            if (ctrlCliente.ClienteSelecionado != null)
                IDCliente = ctrlCliente.ClienteSelecionado.Pessoa.ID;

            if (ctrlGrupoDeAtividade.GrupoSelecionado != null)
                IDGrupoDeAtividade = ctrlGrupoDeAtividade.GrupoSelecionado.ID;

            if (DespachosSelecionados.Count > 0)
                IDsDosDespachos = DespachosSelecionados.Select(despacho => despacho.IdDespacho.Value.ToString()).ToList();

            using (var servico = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeProcessoDeMarca>())
            {
                var processos = servico.ObtenhaProcessosDeMarcas(IDCliente, IDGrupoDeAtividade, IDsDosDespachos);

                var gerador = new GeradorDeRelatorioDeProcessosDeMarcas(processos);
                var nomeDoArquivo = gerador.GereRelatorio();
                var url = UtilidadesWeb.ObtenhaURLHostDiretorioVirtual() + UtilidadesWeb.PASTA_LOADS + "/" +
                          nomeDoArquivo;
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), Guid.NewGuid().ToString(),
                                                        UtilidadesWeb.MostraArquivoParaDownload(url, "Imprimir"), false);
            }
        }
        private void PesquiseEGereRelatorio()
        {
            if(txtDataInicialDeConcessao.SelectedDate.HasValue && txtDataFimConcessao.SelectedDate.HasValue)
            {
                IList<string> IDsDosDespachos = null;

                var dataInicial = this.txtDataInicialDeConcessao.SelectedDate;
                var dataFinal = this.txtDataFimConcessao.SelectedDate;

                if (DespachosSelecionados.Count > 0)
                    IDsDosDespachos = DespachosSelecionados.Select(despacho => despacho.IdDespacho.Value.ToString()).ToList();

                using (var servico = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeProcessoDeMarca>())
                {
                    // obtenha processos de marcas de acordo com o período da data de concessão e despachos.
                    var processos = servico.ObtenhaProcessosDeMarcasComRegistroConcedido(dataInicial, dataFinal, IDsDosDespachos);

                    var gerador = new GeradorDeRelatorioDeProcessosDeMarcas(processos);
                    var nomeDoArquivo = gerador.GereRelatorio();

                    var url = UtilidadesWeb.ObtenhaURLHostDiretorioVirtual() + UtilidadesWeb.PASTA_LOADS + "/" +
                          nomeDoArquivo;
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), Guid.NewGuid().ToString(),
                                                            UtilidadesWeb.MostraArquivoParaDownload(url, "Imprimir"), false);
                }
            }
            else
            {
                ScriptManager.RegisterClientScriptBlock(this, GetType(), Guid.NewGuid().ToString(),
                                                       UtilidadesWeb.MostraMensagemDeInconsitencia("Selecione as datas para geração do relatório."),
                                                       false);
            }
        }