public static InformeColaboradorFiltro Converter(ConsultaInformeColaboradorVM vm) { var filtro = new InformeColaboradorFiltro() { AnoExercicio = vm.AnoExercicio, CPFCNPJ = removeMascaraCPFCNPJ(vm.CPFCNPJ) }; return(filtro); }
public IQueryable <InformeColaboradorDTO> Execute(InformeColaboradorFiltro filtro) { var consulta = from p in _db.Processamentos join a in _db.Arquivos on p.Id equals a.ProcessamentoId where p.AnoExercicio == filtro.AnoExercicio && p.SituacaoProcessamento == (short)TipoSituacao.EnviadoWeb && p.Arquivos.Any(arquivo => a.NomeArquivo.Contains(filtro.CPFCNPJ)) orderby p.AnoExercicio select new InformeColaboradorDTO { AnoExercicio = p.AnoExercicio, CPFCNPJ = a.NomeArquivo, CaminhoDiretorio = a.CaminhoDiretorio, ExtensaoArquivo = a.ExtensaoArquivo }; return(consulta); }
public FileResult BuscaPdf(string fileName, int ano) { if (fileName == null && ano == 0) { throw new Exception("Parâmetros inválidos"); } var consulta = new ConsultaInformeColaboradorQueryHandler(); var filtro = new InformeColaboradorFiltro { AnoExercicio = ano, CPFCNPJ = fileName }; var arquivo = consulta.Execute(filtro).FirstOrDefault(); var caminhoDir = arquivo.CaminhoDiretorio; var nomeServer = ConfigurationManager.AppSettings["NomeServer"].RemoveContraBarra(); var diretorioServer = ConfigurationManager.AppSettings["DiretorioServer"].RemoveContraBarra(); var raizPathInformesColaboradores = String.Format(@"\\{0}\{1}", nomeServer, diretorioServer); while (Path.IsPathRooted(caminhoDir)) { caminhoDir = caminhoDir.Remove(0, 1); } var path = Path.Combine(raizPathInformesColaboradores, caminhoDir, fileName + arquivo.ExtensaoArquivo); var servico = new ArquivoServico(); try { using (servico.Conexao = RedeUtil.RecuperarConexaoRede(servico.CaminhoDiretorio, servico.Usuario)) { FileStream file = new FileStream(path, FileMode.Open); return(File(file, "application/pdf", fileName + ".pdf")); } } catch (Exception e) { servico.Conexao.Dispose(); throw new Exception("Erro ao tentar baixar arquivo " + arquivo.CPFCNPJ + " " + e.Message, e.InnerException); } }