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); }