Ejemplo n.º 1
0
        public object ObterDadosPdf(IEspecificidade especificidade, BancoDeDados banco)
        {
            try
            {
                Autorizacao autorizacao = _da.ObterDadosPDF(especificidade.Titulo.Id, banco);
                DataEmissaoPorExtenso(autorizacao.Titulo);

                #region Anexos

                autorizacao.AnexosPdfs = autorizacao.Anexos
                                         .Select(x => x.Arquivo)
                                         .Where(x => (!String.IsNullOrEmpty(x.Nome) && new FileInfo(x.Nome).Extension.ToLower().IndexOf("pdf") > -1)).ToList();

                autorizacao.Anexos.RemoveAll(anexo =>
                                             String.IsNullOrEmpty(anexo.Arquivo.Extensao) ||
                                             !((new[] { ".jpg", ".gif", ".png", ".bmp" }).Any(x => anexo.Arquivo.Extensao.ToLower() == x)));

                if (autorizacao.Anexos != null && autorizacao.Anexos.Count > 0)
                {
                    foreach (AnexoPDF anexo in autorizacao.Anexos)
                    {
                        anexo.Arquivo.Conteudo = AsposeImage.RedimensionarImagem(
                            File.ReadAllBytes(anexo.Arquivo.Caminho),
                            11, eAsposeImageDimensao.Ambos);
                    }
                }

                #endregion

                autorizacao.Dominialidade = new DominialidadePDF(new DominialidadeBus().ObterPorEmpreendimento(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault()));
                var exploracoes = new ExploracaoFlorestalBus().ObterExploracoes(especificidade.Titulo.Id, (int)eTituloModeloCodigo.AutorizacaoExploracaoFlorestal);
                autorizacao.ExploracaoFlorestal = exploracoes.Select(x => new ExploracaoFlorestalAutorizacaoPDF(x)).ToList();
                decimal areaAutorizada = exploracoes.SelectMany(x => x.Exploracoes).Sum(x => x.AreaCroqui);
                autorizacao.VegetacaoNativaRemanescente = (autorizacao.Dominialidade.VegetacaoNativaTotalDecimal - areaAutorizada).ToStringTrunc(2);
                var produtos = exploracoes.SelectMany(x => x.Exploracoes).SelectMany(x => x.Produtos).Select(x => new ExploracaoFlorestalExploracaoProdutoPDF(x)).ToList();
                autorizacao.Produtos = produtos.GroupBy(x => new { x.Nome, x.Especie, x.UnidadeMedida }, x => x.Quantidade, (key, g) => new ExploracaoFlorestalAutorizacaoProdutoPDF()
                {
                    Nome          = key.Nome,
                    Especie       = key.Especie,
                    UnidadeMedida = string.IsNullOrWhiteSpace(key.UnidadeMedida) ? "" : String.Concat("(", key.UnidadeMedida, ")"),
                    Quantidade    = g.Sum(x => x)
                }).ToList();

                return(autorizacao);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(null);
        }
        public object ObterDadosPdf(IEspecificidade especificidade, BancoDeDados banco)
        {
            try
            {
                Laudo laudo = _da.ObterDadosPDF(especificidade.Titulo.Id, banco);
                DataEmissaoPorExtenso(laudo.Titulo);

                #region Anexos

                laudo.AnexosPdfs = laudo.Anexos
                                   .Select(x => x.Arquivo)
                                   .Where(x => (!String.IsNullOrEmpty(x.Nome) && new FileInfo(x.Nome).Extension.ToLower().IndexOf("pdf") > -1)).ToList();

                laudo.Anexos.RemoveAll(anexo =>
                                       String.IsNullOrEmpty(anexo.Arquivo.Extensao) ||
                                       !((new[] { ".jpg", ".gif", ".png", ".bmp" }).Any(x => anexo.Arquivo.Extensao.ToLower() == x)));

                if (laudo.Anexos != null && laudo.Anexos.Count > 0)
                {
                    foreach (AnexoPDF anexo in laudo.Anexos)
                    {
                        anexo.Arquivo.Conteudo = AsposeImage.RedimensionarImagem(
                            File.ReadAllBytes(anexo.Arquivo.Caminho),
                            11, eAsposeImageDimensao.Ambos);
                    }
                }

                #endregion

                laudo.Dominialidade = new DominialidadePDF(new DominialidadeBus().ObterPorEmpreendimento(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault()));

                if (laudo.CaracterizacaoTipo == (int)eCaracterizacao.ExploracaoFlorestal)
                {
                    var exploracoes = new ExploracaoFlorestalBus().ObterExploracoes(especificidade.Titulo.Id, (int)eTituloModeloCodigo.LaudoVistoriaFlorestal);
                    laudo.ExploracaoFlorestalList = exploracoes.Select(x => new ExploracaoFlorestalPDF(x)).ToList();
                    var parecerFavoravel    = new ArrayList();
                    var parecerDesfavoravel = new ArrayList();
                    foreach (var exploracao in exploracoes)
                    {
                        if (exploracao.Exploracoes.Where(x => x.ParecerFavoravel == true)?.ToList().Count > 0)
                        {
                            parecerFavoravel.Add(String.Concat(exploracao.CodigoExploracaoTexto, " (", String.Join(", ", exploracao.Exploracoes.Where(x => x.ParecerFavoravel == true).Select(x => x.Identificacao)?.ToList()), ")"));
                        }
                        if (exploracao.Exploracoes.Where(x => x.ParecerFavoravel == false)?.ToList().Count > 0)
                        {
                            parecerDesfavoravel.Add(String.Concat(exploracao.CodigoExploracaoTexto, " (", String.Join(", ", exploracao.Exploracoes.Where(x => x.ParecerFavoravel == false).Select(x => x.Identificacao)?.ToList()), ")"));
                        }
                    }
                    laudo.ParecerFavoravel    = parecerFavoravel.Count > 0 ? String.Join(", ", parecerFavoravel?.ToArray()) : "";
                    laudo.ParecerDesfavoravel = parecerDesfavoravel.Count > 0 ? String.Join(", ", parecerDesfavoravel?.ToArray()) : "";
                }
                else
                {
                    laudo.ExploracaoFlorestal = new ExploracaoFlorestalPDF(new ExploracaoFlorestalBus().ObterPorEmpreendimento(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault()));
                }
                laudo.QueimaControlada = new QueimaControladaPDF(new QueimaControladaBus().ObterPorEmpreendimento(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault()));

                laudo.Silvicultura = new SilviculturaPDF(new SilviculturaBus().ObterPorEmpreendimento(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault()));

                return(laudo);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(null);
        }