public Resultado ProrrogarProjeto(Projeto dados, out Etapa etapa) { var resultado = new Resultado(); etapa = null; resultado.Acao = "Prorrogar projeto"; var projeto = _context.Projetos.Include("Etapas").FirstOrDefault(p => p.Id == dados.Id); if (projeto == null) { resultado.Inconsistencias.Add("Projeto não localizado"); } else { if (projeto.DataInicio == null) { resultado.Inconsistencias.Add("Data Inicio projeto não definida"); } if (projeto.Etapas.Count() == 0) { resultado.Inconsistencias.Add("Projeto não possui etapas"); } } if (resultado.Inconsistencias.Count() == 0) { var LastEtapa = _etapaService.AddDataEtapas(projeto.Etapas).LastOrDefault(); if (LastEtapa.DataFim != null) { var duracao = Math.Abs(12 * (LastEtapa.DataFim.Value.Year - dados.DataFim.Value.Year) + LastEtapa.DataFim.Value.Month - dados.DataFim.Value.Month); var newDate = LastEtapa.DataFim.Value.AddMonths(duracao); var newEtapa = new Etapa { ProjetoId = projeto.Id, Nome = "Prorrogação", Desc = "Prorrogação", Duracao = duracao, DataInicio = LastEtapa.DataFim, DataFim = newDate, EtapaProdutos = _etapaService.MontEtapaProdutos(dados.Etapa) }; _context.Etapas.Add(newEtapa); _context.SaveChanges(); etapa = newEtapa; resultado.Id = newEtapa.Id.ToString(); } } return(resultado); }
public XmlRelatorioFinal GerarXml(int ProjetoId, string Versao, string UserId) { XmlRelatorioFinal relatorio = new XmlRelatorioFinal(); Projeto projeto = _context.Projetos .Include("CatalogEmpresa") .Include("Empresas.Estado") .Include("Etapas") .Include("AlocacoesRh.RecursoHumano") .Include("AlocacoesRm.RecursoMaterial") .Include("Empresas.CatalogEmpresa") .Include("RelatorioFinal.Uploads") .Where(p => p.Id == ProjetoId) .FirstOrDefault(); var registros = _context.RegistrosFinanceiros .Include("RecursoHumano") .Include("RecursoMaterial") .Where(p => p.ProjetoId == ProjetoId) .Where(p => p.StatusValor == "Aprovado") .ToList(); int?[] rhIds = registros.Where(r => r.RecursoHumano != null).Select(r => r.RecursoHumanoId).ToArray(); int?[] rmIds = registros.Where(r => r.RecursoMaterial != null).Select(r => r.RecursoMaterialId).ToArray(); #region <PD_RelFinalBase> relatorio.PD_RelFinalBase = new PD_RelFinalBasePD { CodProjeto = projeto.Codigo, ArquivoPDF = projeto.RelatorioFinal.Uploads.Where(u => u.CategoriaValor == "RelatorioFinalAnual").FirstOrDefault().NomeArquivo, DataIniODS = projeto.DataInicio.ToString(), DataFimODS = (projeto.Etapas.LastOrDefault().DataFim == null) ? _etapaService.AddDataEtapas(projeto.Etapas).LastOrDefault().DataFim.ToString() : projeto.Etapas.LastOrDefault().DataFim.ToString(), ProdPrev = projeto.RelatorioFinal.ProdutoAlcancado.ToString(), ProdJust = projeto.RelatorioFinal.JustificativaProduto, ProdEspTec = projeto.RelatorioFinal.EspecificacaoProduto, TecPrev = projeto.RelatorioFinal.TecnicaPrevista.ToString(), TecJust = projeto.RelatorioFinal.JustificativaTecnica, TecDesc = projeto.RelatorioFinal.DescTecnica, AplicPrev = projeto.RelatorioFinal.AplicabilidadePrevista.ToString(), AplicJust = projeto.RelatorioFinal.JustificativaAplicabilidade, AplicFnc = projeto.RelatorioFinal.DescTestes, AplicAbrang = projeto.RelatorioFinal.DescAbrangencia, AplicAmbito = projeto.RelatorioFinal.DescAmbito, TxDifTec = projeto.RelatorioFinal.DescAtividades }; #endregion #region <PD_EquipeEmp> var PedEmpresaList = new List <PedEmpresa>(); var EmpresasFinanciadoras = projeto.Empresas .Where(p => p.ClassificacaoValor == "Energia" || p.ClassificacaoValor == "Proponente") .ToList(); foreach (Empresa empresa in EmpresasFinanciadoras) { var equipeList = new List <EquipeEmpresa>(); var registroRhEmpresa = registros.Where(r => r.RecursoHumano != null && r.RecursoHumano.Empresa == empresa).GroupBy(r => r.RecursoHumanoId).Select(r => r.First()); foreach (var registro in registroRhEmpresa) { var strMesHora = ObterMesReferencia(projeto, registros.Where(r => r.RecursoHumanoId == registro.RecursoHumanoId).ToList()); equipeList.Add(new EquipeEmpresa { NomeMbEqEmp = registro.RecursoHumano.NomeCompleto, CpfMbEqEmp = registro.RecursoHumano.CPF, TitulacaoMbEqEmp = registro.RecursoHumano.TitulacaoValor, FuncaoMbEqEmp = registro.RecursoHumano.FuncaoValor, HhMbEqEmp = registro.RecursoHumano.ValorHora.ToString(), MesMbEqEmp = strMesHora[0], HoraMesMbEqEmp = strMesHora[1] }); } PedEmpresaList.Add(new PedEmpresa { CodEmpresa = empresa.CatalogEmpresa.Valor, TipoEmpresa = empresa.ClassificacaoValor, Equipe = new Equipe { EquipeEmpresa = equipeList } }); } #endregion #region <PD_EquipeExec> // PD_EQUIPEEXEC var PedExecutoraList = new List <PedExecutora>(); foreach (Empresa empresa in projeto.Empresas .Where(p => p.ClassificacaoValor == "Executora") .ToList()) { var equipeList = new List <EquipeExec>(); var registroRhEmpresa = registros.Where(r => r.RecursoHumano != null && r.RecursoHumano.Empresa == empresa).GroupBy(r => r.RecursoHumanoId).Select(r => r.First()); foreach (var registro in registroRhEmpresa) { var strMesHora = ObterMesReferencia(projeto, registros.Where(r => r.RecursoHumanoId == registro.RecursoHumanoId).ToList()); equipeList.Add(new EquipeExec { NomeMbEqExec = registro.RecursoHumano.NomeCompleto, BRMbEqExec = registro.RecursoHumano.NacionalidadeValor, DocMbEqExec = registro.RecursoHumano.CPF ?? registro.RecursoHumano.Passaporte, TitulacaoMbEqExec = registro.RecursoHumano.TitulacaoValor, FuncaoMbEqExec = registro.RecursoHumano.FuncaoValor, HhMbEqExec = registro.RecursoHumano.ValorHora.ToString(), MesMbEqExec = strMesHora[0], HoraMesMbEqExec = strMesHora[1] }); } PedExecutoraList.Add(new PedExecutora { CNPJExec = empresa.Cnpj, RazaoSocialExec = empresa.RazaoSocial, UfExec = empresa.Estado.Valor, Equipe = new ExecEquipe { EquipeExec = equipeList } }); } relatorio.PD_EquipeEmp = new PD_EquipeEmp { Empresas = new PedEmpresas { Empresa = PedEmpresaList } }; relatorio.PD_EquipeExec = new PD_EquipeExec { Executoras = new PedExecutoras { Executora = PedExecutoraList } }; #endregion #region <PD_ETAPAS> var EtapasList = new List <PD_Etapa>(); int ordem = 1; int anterior = 0; foreach (Etapa etapa in projeto.Etapas.OrderBy(e => e.Id)) { string mesExecEtapa = null; int duracao = etapa.Duracao; var etapalist = new List <string>(); int last = 0; for (int a = anterior + 1; a <= (anterior + duracao); a++) { etapalist.Add((a).ToString()); last = a; } anterior = last; mesExecEtapa = String.Join(",", etapalist); EtapasList.Add(new PD_Etapa { EtapaN = ordem.ToString().PadLeft(2, '0'), Atividades = etapa.AtividadesRealizadas, MesExecEtapa = mesExecEtapa }); ordem++; } relatorio.PD_Etapas = new PD_Etapas { Etapa = EtapasList }; #endregion #region <PD_RECURSO> relatorio.PD_Recursos = new RF_Recursos { RecursoEmpresa = new List <RF_RecursoEmpresa>(), RecursoParceira = new List <RF_RecursoParceira>() }; foreach (Empresa empresa in EmpresasFinanciadoras) { var DestRecursosExec = new List <RF_DestRecursosExec>(); foreach (var rm in projeto.AlocacoesRm .Where(p => p.EmpresaRecebedora.ClassificacaoValor == "Executora") .Where(p => p.EmpresaFinanciadora == empresa) .Where(p => rmIds.Contains(p.RecursoMaterial.Id)) .GroupBy(p => p.EmpresaRecebedora) .ToList()) { DestRecursosExec.Add(new RF_DestRecursosExec { CNPJExec = rm.First().EmpresaRecebedora.Cnpj, CustoCatContabil = ObterCustosCat(rm, registros) }); } var DestRecursosEmp = new List <RF_DestRecursosEmp>(); foreach (var rm in projeto.AlocacoesRm .Where(p => p.EmpresaRecebedora == empresa) .Where(p => p.EmpresaFinanciadora == empresa) .Where(p => rmIds.Contains(p.RecursoMaterial.Id)) .GroupBy(p => p.EmpresaRecebedora) .ToList()) { DestRecursosEmp.Add(new RF_DestRecursosEmp { CustoCatContabil = ObterCustosCat(rm, registros) }); } relatorio.PD_Recursos.RecursoEmpresa.Add(new RF_RecursoEmpresa { CodEmpresa = empresa.CatalogEmpresa.Valor, DestRecursos = new DestRecursos { DestRecursosEmp = DestRecursosEmp, DestRecursosExec = DestRecursosExec } }); } foreach (Empresa empresa in projeto.Empresas .Where(p => p.ClassificacaoValor == "Parceira") .ToList()) { var DestRecursosExec = new List <RF_DestRecursosExec>(); //RH foreach (var rh in projeto.AlocacoesRh .Where(p => p.Empresa.ClassificacaoValor == "Executora") .Where(p => rhIds.Contains(p.RecursoHumano.Id)) .ToList()) { var CustoCatContabil = new List <CustoCatContabil <ItemDespesa> >(); var itemDespesa = new List <ItemDespesa>(); foreach (var registro in registros .Where(p => p.RecursoHumano != null).ToList()) { itemDespesa.Add(new ItemDespesa { NomeItem = registro.RecursoHumano.NomeCompleto, JustificaItem = rh.Justificativa, QtdeItem = registro.QtdHrs, ValorIndItem = registro.RecursoHumano.ValorHora.ToString(), TipoItem = (registro.RecursoHumano.NacionalidadeValor == "Brasileiro") ? "True" : "false" //ItemLabE = registro.EquiparLabExistente.ToString(), //ItemLabN = registro.EquiparLabNovo.ToString() }); } CustoCatContabil.Add(new CustoCatContabil <ItemDespesa> { CategoriaContabil = "RH", ItemDespesa = itemDespesa }); DestRecursosExec.Add(new RF_DestRecursosExec { CNPJExec = rh.Empresa.Cnpj, CustoCatContabil = CustoCatContabil }); } //RM foreach (var rm in projeto.AlocacoesRm .Where(p => p.EmpresaRecebedora.ClassificacaoValor == "Executora") .Where(p => p.EmpresaFinanciadora == empresa) .Where(p => rmIds.Contains(p.RecursoMaterial.Id)) .GroupBy(p => p.EmpresaRecebedora) .ToList()) { DestRecursosExec.Add(new RF_DestRecursosExec { CNPJExec = rm.First().EmpresaRecebedora.Cnpj, CustoCatContabil = ObterCustosCat(rm, registros) }); } relatorio.PD_Recursos.RecursoParceira.Add(new RF_RecursoParceira { CNPJParc = empresa.Cnpj, DestRecursosExec = DestRecursosExec }); } #endregion #region <PD_RESULTADO> relatorio.PD_Resultados = new PD_Resultados { PD_ResultadosCP = new PD_ResultadosCP(), PD_ResultadosCT = new PD_ResultadosCT { PD_ResultadosCT_PC = new PD_ResultadosCT_PC(), PD_ResultadosCT_IE = new PD_ResultadosCT_IE(), PD_ResultadosCT_PI = new PD_ResultadosCT_PI() }, PD_ResultadosSA = new PD_ResultadosSA(), PD_ResultadosIE = new PD_ResultadosIE() }; var listIdCp = new List <IdCP>(); foreach (ResultadoCapacitacao rCp in _context.ResultadosCapacitacao.Include("RecursoHumano").Include("Uploads").Where(r => r.ProjetoId == ProjetoId).ToList()) { var file = rCp.Uploads.FirstOrDefault(); listIdCp.Add(new IdCP { TipoCP = rCp.TipoValor, ConclusaoCP = rCp.Conclusao.ToString(), DataCP = rCp.DataConclusao.ToString(), DocMmbEqCP = (rCp.RecursoHumano.CPF != null) ? rCp.RecursoHumano.CPF : rCp.RecursoHumano.Passaporte, CNPJInstCP = rCp.CnpjInstituicao, AreaCP = rCp.AreaPesquisa, TituloCP = rCp.TituloTrabalho, ArquivoPDF = file != null ? file.NomeArquivo : "", }); } relatorio.PD_Resultados.PD_ResultadosCP.IdCP = listIdCp; var listIdCT_PC = new List <IdCT_PC>(); foreach (ResultadoProducao rCT_PC in _context.ResultadosProducao.Include("Pais").Include("Uploads").Where(r => r.ProjetoId == ProjetoId).ToList()) { var file = rCT_PC.Uploads.FirstOrDefault(); listIdCT_PC.Add(new IdCT_PC { TipoCT_PC = rCT_PC.TipoValor, ConfPubCT_PC = rCT_PC.Confirmacao.ToString(), DataCT_PC = rCT_PC.DataPublicacao.ToString(), NomeCT_PC = rCT_PC.Nome, LinkCT_PC = rCT_PC.Url, PaisCT_PC = rCT_PC.Pais.Nome, CidadeCT_PC = rCT_PC.Cidade, TituloCT_PC = rCT_PC.Titulo, ArquivoPDF = file != null ? file.NomeArquivo : "", }); } relatorio.PD_Resultados.PD_ResultadosCT.PD_ResultadosCT_PC.IdCT_PC = listIdCT_PC; var listIdCT_IE = new List <IdCT_IE>(); foreach (ResultadoInfra rCT_IE in _context.ResultadosInfra.Where(r => r.ProjetoId == ProjetoId).ToList()) { listIdCT_IE.Add(new IdCT_IE { TipoCT_IE = rCT_IE.TipoValor, CNPJInstBenefCT_IE = rCT_IE.CnpjReceptora, NomeLabCT_IE = rCT_IE.NomeLaboratorio, AreaLabCT_IE = rCT_IE.AreaPesquisa, ApoioLabCT_IE = rCT_IE.ListaMateriais }); } relatorio.PD_Resultados.PD_ResultadosCT.PD_ResultadosCT_IE.IdCT_IE = listIdCT_IE; var listIdCT_PI = new List <IdCT_PI>(); foreach (ResultadoIntelectual rCT_PI in _context.ResultadosIntelectual.Include("Inventores.RecursoHumano").Include("Depositantes.Empresa.CatalogEmpresa").Where(r => r.ProjetoId == ProjetoId).ToList()) { var listIvts = new List <Inventor_PI>(); foreach (ResultadoIntelectualInventor ivt in rCT_PI.Inventores) { listIvts.Add(new Inventor_PI { DocMbEqCT_PI = (ivt.RecursoHumano.CPF != null) ? ivt.RecursoHumano.CPF : ivt.RecursoHumano.Passaporte }); } var listDpts = new List <Depositante_PI>(); foreach (ResultadoIntelectualDepositante dpt in rCT_PI.Depositantes) { listDpts.Add(new Depositante_PI { CNPJInstCT_PI = (dpt.Empresa.Cnpj != null) ? dpt.Empresa.Cnpj : dpt.Empresa.CatalogEmpresa.Cnpj, PercInstCT_PI = dpt.Entidade.ToString() }); } listIdCT_PI.Add(new IdCT_PI { TipoCT_PI = rCT_PI.TipoValor, DataCT_PI = rCT_PI.DataPedido.ToString(), NumeroCT_PI = rCT_PI.NumeroPedido, TituloCT_PI = rCT_PI.Titulo, Inventores_PI = new Inventores_PI { Inventor = listIvts }, Depositantes_PI = new Depositantes_PI { Depositante = listDpts } }); } relatorio.PD_Resultados.PD_ResultadosCT.PD_ResultadosCT_PI.IdCT_PI = listIdCT_PI; // PD_RESULTADOS_SA var listIdSA = new List <IdSA>(); foreach (ResultadoSocioAmbiental rSa in _context.ResultadosSocioAmbiental.Where(r => r.ProjetoId == ProjetoId).ToList()) { listIdSA.Add(new IdSA { TipoISA = rSa.TipoValor, PossibISA = rSa.Positivo.ToString(), TxtISA = rSa.Desc }); } relatorio.PD_Resultados.PD_ResultadosSA.IdSA = listIdSA; // PD_RESULTADOS_IE var listIdIE = new List <IdIE>(); foreach (ResultadoEconomico rIe in _context.ResultadosEconomico.Where(r => r.ProjetoId == ProjetoId).ToList()) { listIdIE.Add(new IdIE { TipoIE = rIe.TipoValor, TxtBenefIE = rIe.Desc, UnidBenefIE = rIe.UnidadeBase, BaseBenefIE = rIe.ValorIndicador.ToString(), PerBenefIE = rIe.Percentagem.ToString(), VlrBenefIE = rIe.ValorBeneficio.ToString() }); } relatorio.PD_Resultados.PD_ResultadosIE.IdIE = listIdIE; #endregion return(relatorio); }
public XmlRelatorioFinalGestao GerarXml(int ProjetoId, string Versao, string UserId) { XmlRelatorioFinalGestao relatorio = new XmlRelatorioFinalGestao(); Projeto projeto = _context.Projetos .Include("CatalogEmpresa") .Include("Empresas.Estado") .Include("Etapas.EtapaMeses") .Include("Atividades") //.Include("AlocacoesRh.RecursoHumano") //.Include("AlocacoesRm.RecursoMaterial.CategoriaContabilGestao") .Include("Empresas.CatalogEmpresa") .Include("RelatorioFinal.Uploads") .Where(p => p.Id == ProjetoId) .FirstOrDefault(); var registros = _context.RegistrosFinanceiros .Include("RecursoHumano") .Include("RecursoMaterial.CategoriaContabilGestao") .Include("CategoriaContabilGestao") .Include("Atividade") .Where(p => p.ProjetoId == ProjetoId) .Where(p => p.StatusValor == "Aprovado") .ToList(); int?[] rhIds = registros.Where(r => r.RecursoHumano != null).Select(r => r.RecursoHumanoId).ToArray(); int?[] rmIds = registros.Where(r => r.RecursoMaterial != null).Select(r => r.RecursoMaterialId).ToArray(); var AtividadesList = new List <RFG_Atividade>(); foreach (var rm0 in registros.Where(r => r.RecursoMaterial != null && r.Atividade != null).GroupBy(p => p.Atividade.Valor)) { decimal?custo = 0; foreach (var rm1 in rm0) { custo += rm1.ValorUnitario * rm1.QtdItens; } string _resAtividade = null; switch (rm0.First().Atividade.Valor) { case "HH": _resAtividade = projeto.Atividades.ResDedicacaoHorario; break; case "EC": _resAtividade = projeto.Atividades.ResParticipacaoMembros; break; case "FG": _resAtividade = projeto.Atividades.ResDesenvFerramenta; break; case "PP": _resAtividade = projeto.Atividades.ResProspTecnologica; break; case "RP": _resAtividade = projeto.Atividades.ResDivulgacaoResultados; break; case "AP": _resAtividade = projeto.Atividades.ResParticipacaoTecnicos; break; case "BA": _resAtividade = projeto.Atividades.ResBuscaAnterioridade; break; case "CA": _resAtividade = projeto.Atividades.ResContratacaoAuditoria; break; case "AC": _resAtividade = projeto.Atividades.ResApoioCitenel; break; } AtividadesList.Add(new RFG_Atividade { TipoAtividade = rm0.First().Atividade.Valor, ResAtividade = _resAtividade, CustoAtividade = custo.ToString() }); } relatorio.PD_RelFinalBase = new PD_RelFinalBase { CodProjeto = projeto.Codigo, ArquivoPDF = projeto.RelatorioFinal.Uploads.Where(u => u.CategoriaValor == "RelatorioFinalAnual").FirstOrDefault().NomeArquivo, DataIniODS = projeto.DataInicio.ToString(), DataFimODS = (projeto.Etapas.LastOrDefault().DataFim == null) ? _etapaService.AddDataEtapas(projeto.Etapas).LastOrDefault().DataFim.ToString() : projeto.Etapas.LastOrDefault().DataFim.ToString(), Atividades = new RFG_Atividades { Atividade = AtividadesList } }; // PD_EQUIPEEMP var PedEmpresaList = new List <PedEmpresa>(); var EmpresasFinanciadoras = projeto.Empresas .Where(p => p.ClassificacaoValor == "Energia" || p.ClassificacaoValor == "Proponente") .ToList(); foreach (Empresa empresa in EmpresasFinanciadoras) { var equipeList = new List <EquipeEmpresa>(); var registrosRH = from r in registros where r.RecursoHumano != null && r.RecursoHumano.CPF != null && r.RecursoHumano.Empresa.Id == empresa.Id select r; foreach (var reg in registrosRH) { var strMesHora = ObterMesReferencia(projeto, registros.Where(r => r.RecursoHumanoId == reg.RecursoHumanoId).ToList()); equipeList.Add(new EquipeEmpresa { NomeMbEqEmp = reg.RecursoHumano.NomeCompleto, CpfMbEqEmp = reg.RecursoHumano.CPF, HhMbEqEmp = reg.RecursoHumano.ValorHora.ToString(), MesMbEqEmp = strMesHora[0], HoraMesMbEqEmp = strMesHora[1] }); } PedEmpresaList.Add(new PedEmpresa { CodEmpresa = empresa.CatalogEmpresa.Valor, TipoEmpresa = empresa.ClassificacaoValor, Equipe = new Equipe { EquipeEmpresa = equipeList } }); } relatorio.PD_Equipe = new PD_Equipe { Empresas = new PedEmpresas { Empresa = PedEmpresaList } }; // PD_ETAPAS var EtapasList = new List <PD_Etapa>(); int ordem = 1; var meses = new List <DateTime>(); projeto.Etapas.ForEach(e => meses.AddRange( e.EtapaMeses.Select(m => m.Mes) ) ); meses = meses.GroupBy(m => m).Select(m => m.First()).OrderBy(m => m).ToList(); projeto.Etapas.Select(e => e.EtapaMeses.Select(m => m.Mes)); foreach (Etapa etapa in projeto.Etapas.OrderBy(e => e.Id)) { var etapalist = etapa.EtapaMeses.Select(m => meses.IndexOf(m.Mes) + 1).OrderBy(i => i).ToList(); var mesExecEtapa = String.Join(",", etapalist); EtapasList.Add(new PD_Etapa { EtapaN = ordem.ToString().PadLeft(2, '0'), Atividades = etapa.AtividadesRealizadas, MesExecEtapa = mesExecEtapa }); ordem++; } relatorio.PD_Etapas = new PD_Etapas { Etapa = EtapasList }; // PD_RECURSO relatorio.PD_Recursos = new RFG_Recursos { RecursoEmpresa = new List <RFG_RecursoEmpresa>() }; foreach (Empresa empresa in EmpresasFinanciadoras) { relatorio.PD_Recursos.RecursoEmpresa.Add(new RFG_RecursoEmpresa { CodEmpresa = empresa.CatalogEmpresa.Valor, CustoCatContabil = ObterCustosCat(registros.Where(r => r.EmpresaFinanciadoraId == empresa.Id && r.RecursoMaterial != null).ToList()) }); } // PD_RESULTADO var listIdCp = new List <IdCP>(); foreach (ResultadoCapacitacao rCp in _context.ResultadosCapacitacao.Include("RecursoHumano").Include("Uploads").Where(r => r.ProjetoId == ProjetoId).ToList()) { listIdCp.Add(new IdCP { TipoCP = rCp.TipoValor, ConclusaoCP = rCp.Conclusao.ToString(), DataCP = rCp.DataConclusao.ToString(), DocMmbEqCP = (rCp.RecursoHumano.CPF != null) ? rCp.RecursoHumano.CPF : rCp.RecursoHumano.Passaporte, CNPJInstCP = rCp.CnpjInstituicao, AreaCP = rCp.AreaPesquisa, TituloCP = rCp.TituloTrabalho, ArquivoPDF = rCp.Uploads.First().NomeArquivo, }); } relatorio.PD_ResultadosCP = new PD_ResultadosCP { IdCP = listIdCp }; var listIdPC = new List <IdPC>(); foreach (ResultadoProducao rCT_PC in _context.ResultadosProducao.Include("Pais").Include("Uploads").Where(r => r.ProjetoId == ProjetoId).ToList()) { listIdPC.Add(new IdPC { TipoPC = rCT_PC.TipoValor, ConfPubPC = rCT_PC.Confirmacao.ToString(), DataPC = rCT_PC.DataPublicacao.ToString(), NomePC = rCT_PC.Nome, LinkPC = rCT_PC.Url, PaisPC = rCT_PC.Pais.Nome, CidadePC = rCT_PC.Cidade, TituloPC = rCT_PC.Titulo, ArquivoPDF = rCT_PC.Uploads.First().NomeArquivo, }); } relatorio.PD_ResultadosPC = new PD_ResultadosPC { IdPC = listIdPC }; return(relatorio); }