/// <summary> /// Criar o arquivo na pasta indicada, conforme as solicitações daquele contratante /// </summary> private void CriarArquivo(int contratanteId) { try { //Serializador xml XmlSerializer serializer = new XmlSerializer(typeof(SolicitacaoCarga)); //Leitura de todos as solicitações List <SOLICITACAO> solicitacoes = solicitacaoBP.ListarSolicitacaoCarga(contratanteId); //Mapeamento com a classe xml SolicitacaoCarga solicitacao = new SolicitacaoCarga { Solicitacoes = Mapper.Map <List <SOLICITACAO>, List <SolicitacoesCarga> >(solicitacoes) }; //Escrita XML var diretorioCarga = AppDomain.CurrentDomain.BaseDirectory + ConfigurationManager.AppSettings.Get("DiretorioCarga"); using (TextWriter writer = new StreamWriter(NomearDocumento(contratanteId, diretorioCarga))) { serializer.Serialize(writer, solicitacao); } var diretorioCargaBackup = AppDomain.CurrentDomain.BaseDirectory + ConfigurationManager.AppSettings.Get("DiretorioCargaBackup"); using (TextWriter writer = new StreamWriter(NomearDocumento(contratanteId, diretorioCargaBackup))) { serializer.Serialize(writer, solicitacao); } // ATUALIZA O TRAMITE DE CADA SOLICITAÇÃO INCLUIDA NO ARQUIVO int papelAtual = papelBP.BuscarPorContratanteETipoPapel(contratanteId, (int)EnumTiposPapel.CargaSAP).ID; solicitacoes.ForEach(x => _tramite.AtualizarTramite(x.CONTRATANTE_ID, x.ID, x.FLUXO_ID, papelAtual, (int)EnumStatusTramite.Aprovado, null)); } catch (Exception ex) { throw new WebForLinkException("Erro ao tentar criar o arquivo", ex); } }
private SolicitacaoCarga deserializarArquivo(string localArquivo) { try { XmlSerializer serializer = new XmlSerializer(typeof(SolicitacaoCarga)); FileStream fs = new FileStream(localArquivo, FileMode.Open); SolicitacaoCarga ret = (SolicitacaoCarga)serializer.Deserialize(fs); return(ret); } catch (Exception ex) { throw new WebForLinkException("Erro ao tentar criar o arquivo", ex); } }