示例#1
0
        public ModeloDeListaDeCaraters RetonarCaratersPorFiltro(ModeloDeFiltroDeCarater filtro, int pagina, int registrosPorPagina = 30)
        {
            try
            {
                DateTime?dataInicial = null;
                DateTime?dataFinal   = null;

                if (!String.IsNullOrEmpty(filtro.DataInicio))
                {
                    dataInicial = DateTime.Parse(filtro.DataInicio);
                    dataInicial = new DateTime(dataInicial.Value.Year, dataInicial.Value.Month, dataInicial.Value.Day, 0, 0, 0);
                }

                if (!String.IsNullOrEmpty(filtro.DataFim))
                {
                    dataFinal = DateTime.Parse(filtro.DataFim);
                    dataFinal = new DateTime(dataFinal.Value.Year, dataFinal.Value.Month, dataFinal.Value.Day, 23, 59, 59);
                }

                var quantidadeEncontrada = 0;
                var caraters             = this._servicoExternoDePersistencia.RepositorioDeCaraters.RetornarCaratersPorFiltro(filtro.Placa, filtro.CidadesSelecionadas,
                                                                                                                              filtro.CrimesSelecionados, filtro.SituacaoDoCarater, dataInicial, dataFinal, pagina, registrosPorPagina, false, out quantidadeEncontrada);

                var modelo = new ModeloDeListaDeCaraters(caraters, quantidadeEncontrada, filtro);
                return(modelo);
            }
            catch (Exception ex)
            {
                throw new ExcecaoDeAplicacao("Erro ao consultar os caráters");
            }
        }
示例#2
0
        public ModeloDeListaDeCaraters GerarPDFeRetornar(ModeloDeFiltroDeCarater filtro, UsuarioLogado usuario)
        {
            try
            {
                DateTime?dataInicial = null;
                DateTime?dataFinal   = null;

                if (!String.IsNullOrEmpty(filtro.DataInicio))
                {
                    dataInicial = DateTime.Parse(filtro.DataInicio);
                    dataInicial = new DateTime(dataInicial.Value.Year, dataInicial.Value.Month, dataInicial.Value.Day, 0, 0, 0);
                }

                if (!String.IsNullOrEmpty(filtro.DataFim))
                {
                    dataFinal = DateTime.Parse(filtro.DataFim);
                    dataFinal = new DateTime(dataFinal.Value.Year, dataFinal.Value.Month, dataFinal.Value.Day, 23, 59, 59);
                }

                var quantidadeEncontrada = 0;
                var caraters             = this._servicoExternoDePersistencia.RepositorioDeCaraters.RetornarCaratersPorFiltro(filtro.Placa, filtro.CidadesSelecionadas,
                                                                                                                              filtro.CrimesSelecionados, filtro.SituacaoDoCarater, dataInicial, dataFinal, 0, 30, true, out quantidadeEncontrada);

                var modelo = new ModeloDeListaDeCaraters(caraters, quantidadeEncontrada, filtro);
                modelo.ArquivoHtml = RetornaHtmlDaLista(modelo.Lista.OrderBy(a => a.PlacaInicial).ToList(), dataInicial != null? dataInicial.Value : DateTime.MinValue, dataFinal != null ? dataFinal.Value : DateTime.MinValue, usuario);
                return(modelo);
            }
            catch (Exception ex)
            {
                throw new ExcecaoDeAplicacao("Erro ao consultar os caráters");
            }
        }
示例#3
0
        public ModeloDeListaDeCaraters BuscarCaraterPorPlaca(string placa)
        {
            try
            {
                var quantidadeEncontrada = 0;
                var caraters             = this._servicoExternoDePersistencia.RepositorioDeCaraters.BuscarCaratersPorFragmentos(placa);

                var modelo = new ModeloDeListaDeCaraters(caraters, quantidadeEncontrada, new ModeloDeFiltroDeCarater());
                return(modelo);
            }
            catch (Exception ex)
            {
                throw new ExcecaoDeAplicacao("Erro ao consultar os caráters");
            }
        }
示例#4
0
        public async Task <ActionResult> Index(ModeloDeListaDeCaraters modelo, string exportar)
        {
            if (exportar == "imprimir")
            {
                modelo = this._servicoDeGestaoDeCaraters.GerarPDFeRetornar(modelo.Filtro, User.Logado());

                using (Stream enviarParaAzure = new MemoryStream(this._servicoDeGeracaoDeDocumentosEmPdf.CriarPdf(modelo.ArquivoHtml)))
                {
                    var    nomeArquivo = $"caraterGeral{DateTime.Now.ToString().Trim().Replace('/', '.').Trim()}.pdf";
                    string blob        = $"caraters";
                    var    retorno     = await this._servicoExternoDeArmazenamentoEmNuvem.EnviarArquivoAsync(enviarParaAzure, blob, nomeArquivo.Trim());

                    Response.Redirect(retorno, true);
                }
            }

            modelo = this._servicoDeGestaoDeCaraters.RetonarCaratersPorFiltro(modelo.Filtro, this.Pagina(), VariaveisDeAmbiente.Pegar <int>("registrosPorPagina"));

            modelo.Filtro.Cidades = ListaDeItensDeDominio.DaClasseSemOpcaoPadrao <Cidade>(nameof(Cidade.Descricao), nameof(Cidade.Id),
                                                                                          () => this._servicoDeGestaoDeCidades.RetonarCidadesPorUf(7));

            modelo.Filtro.Crimes = ListaDeItensDeDominio.DaClasseSemOpcaoPadrao <Crime>(nameof(Crime.Nome), nameof(Crime.Id),
                                                                                        () => this._servicoDeGestaoDeCrimes.RetonarTodosOsCrimesAtivos());

            if (modelo.Filtro.CidadesSelecionadas != null)
            {
                foreach (var cidade in modelo.Filtro.CidadesSelecionadas)
                {
                    modelo.Filtro.Cidades.FirstOrDefault(a => a.Value == cidade.ToString()).Selected = true;
                }
            }

            if (modelo.Filtro.CrimesSelecionados != null)
            {
                foreach (var crime in modelo.Filtro.CrimesSelecionados)
                {
                    modelo.Filtro.Crimes.FirstOrDefault(a => a.Value == crime.ToString()).Selected = true;
                }
            }

            this.TotalDeRegistrosEncontrados(modelo.TotalDeRegistros);
            return(View(modelo));
        }
示例#5
0
        public ActionResult Dashboard(ModeloDeListaDeCaraters modelo)
        {
            if (User.Autenticado())
            {
                modelo = this._servicoDeGestaoDeCaraters.RetonarCaratersPorCidades(modelo.Filtro);

                modelo.Filtro.Cidades = ListaDeItensDeDominio.DaClasseSemOpcaoPadrao <Cidade>(nameof(Cidade.Descricao), nameof(Cidade.Id),
                                                                                              () => this._servicoDeGestaoDeCidades.RetonarCidadesPorUf(7));

                modelo.Filtro.CidadesLocalizacao = ListaDeItensDeDominio.DaClasseComOpcaoPadrao <Cidade>(nameof(Cidade.Descricao), nameof(Cidade.Id),
                                                                                                         () => this._servicoDeGestaoDeCidades.RetonarCidadesPorUf(7));

                if (modelo.Filtro.CidadesSelecionadas != null)
                {
                    foreach (var cidade in modelo.Filtro.CidadesSelecionadas)
                    {
                        modelo.Filtro.Cidades.FirstOrDefault(a => a.Value == cidade.ToString()).Selected = true;
                    }
                }

                return(View(nameof(Dashboard), modelo));
            }
            return(View());
        }