/// <summary> /// Compacta os arquivos gerados. /// </summary> /// <param name="outputStream"></param> public void Compactar(System.IO.Stream outputStream) { // Adiciona os arquivos FML using (var zip = new Ionic.Utils.Zip.ZipFile(outputStream)) { var errosGeracaoMarcacao = string.Empty; var buffer = new byte[1024]; var read = 0; for (var i = 0; i < _arquivos.Count; i++) { // Verifica se o arquivo é um zip ou seja um arquivo GLO if (Glass.Arquivos.VerificarArquivoZip(_arquivos[i])) { // Descompacta o arquivo zip using (var ms = new System.IO.MemoryStream(_arquivos[i])) { var zip2 = new CalcEngine.Compression.ZipArchive(ms, System.IO.FileAccess.Read); foreach (var file in zip2.Files) { using (var stream2 = file.OpenRead()) { var ms2 = new System.IO.MemoryStream((int)file.Length); while ((read = stream2.Read(buffer, 0, buffer.Length)) > 0) { ms2.Write(buffer, 0, read); } var fileName = System.IO.Path.GetFileNameWithoutExtension(_nomes[i]); var directory = System.IO.Path.GetDirectoryName(file.Name); zip.AddFileStream(fileName + System.IO.Path.GetExtension(file.Name), directory, ms2); } } } } else { zip.AddFileStream(_nomes[i].Replace(" ", "").Replace(" ", ""), "", new System.IO.MemoryStream(_arquivos[i])); } } // Verifica se existe algum erro tratado no momento da geração do arquivo. if (_erros != null && _erros.Any(f => f.Value != null)) { // Monta um texto com todos os problemas ocorridos ao gerar o arquivo de mesa, ao final do método, o texto é salvo em um arquivo separado e é zipado junto com o ASC. errosGeracaoMarcacao = string.Format("Situações com arquivos de mesa: </br></br>{0}", string.Join("</br>", _erros.Where(f => f.Value != null).Select(f => string.Format("Etiqueta: {0} Erro: {1}.", f.Key, MensagemAlerta.FormatErrorMsg(null, f.Value))))); zip.AddStringAsFile(errosGeracaoMarcacao, "Situações com arquivos de mesa.error", string.Empty); } zip.Save(); } }
protected void OnButtonDownloadAllInvoices_Click(object sender, EventArgs e) { string fileName = WebConfig.AbsoluteExportDirectory + "\\" + DateTime.Now.ToString("ddMMyyhhmmss") + "_invoices.zip"; using (Ionic.Utils.Zip.ZipFile zip = new Ionic.Utils.Zip.ZipFile()) { zip.AddDirectoryByName("Invoices"); foreach (GridDataItem item in GridInvoiceFile.Items) { TableCell cell = item["FilePath"]; if (!string.IsNullOrEmpty(cell.Text)) { string filePath = cell.Text; if (File.Exists(filePath)) { //string shortName = filePath.Substring(filePath.LastIndexOf("\\") + 1, filePath.Length - filePath.LastIndexOf('\\') - 1); //string dirPath = filePath.Substring(0, filePath.Length - shortName.Length); //zip.AddFile(filePath); zip.AddFile(filePath, "Invoices"); } } } if(zip.Count >0) { zip.Save(fileName); } } if (File.Exists(fileName)) { string originalFilename = "invoices.zip"; FileStream liveStream = new FileStream(fileName, FileMode.Open, FileAccess.Read); byte[] buffer = new byte[(int)liveStream.Length]; liveStream.Read(buffer, 0, (int)liveStream.Length); liveStream.Close(); Response.Clear(); Response.ContentType = "application/octet-stream"; Response.AddHeader("Content-Length", buffer.Length.ToString()); Response.AddHeader("Content-Disposition", "attachment; filename=" + originalFilename); Response.BinaryWrite(buffer); Response.End(); } }
public string CheckSDMXObject(string id, string agency, string version, string type_structure) { // Retrive Logged user SDMX_Dataloader.Engine.Client client = null; try { client = HttpContext.Current.Session[UserDef.UserSessionKey] as SDMX_Dataloader.Engine.Client; if (client == null) throw new Exception("Session Expiried"); } catch (Exception ex) { return JsonMessage.SessionExpired; } try { using (System.IO.MemoryStream memoryStream = DataSDMX.GetStreamSDMXObject(new SDMXIdentifier() { id = id, agencyid = agency, version = version }, (Org.Sdmxsource.Sdmx.Api.Constants.SdmxStructureEnumType)Enum.Parse(typeof(Org.Sdmxsource.Sdmx.Api.Constants.SdmxStructureEnumType), type_structure))) { //byte[] bytesInStream = memoryStream.ToArray(); //memoryStream.Close(); //string filename = "File"; //filename = Server.MapPath(filename); string fileZip = System.Web.HttpContext.Current.Server.MapPath(@"~\Temp\\File.zip"); System.IO.File.Delete(fileZip); Ionic.Utils.Zip.ZipFile zip = new Ionic.Utils.Zip.ZipFile(fileZip); zip.AddFileStream("structure.xml", string.Empty, memoryStream); zip.Save(); //SendAttachment(bytesInStream, filename); //SaveStreamToFile(filename, memoryStream); } return JsonMessage.EmptyJSON; } catch (Exception ex) { return JsonMessage.ErrorOccured; } }
public void SaveDotSTATCodelistFile(ICodelistObject codelist) { CodelistExporter _codeExp = new CodelistExporter(codelist.Id, codelist); List<ISTAT.IO.Utility.FileGeneric> files = new List<ISTAT.IO.Utility.FileGeneric>(); List<ContactRef> contacs = GetConfigContact(); string ExportFileName; ExportFileName = "DotStatExport-" + codelist.Id + "_" + codelist.AgencyId + "_" + codelist.Version; _codeExp.CreateData(contacs); System.Xml.XmlDocument xDoc_code = _codeExp.XMLDoc; MemoryStream xmlStream_code = new MemoryStream(); xDoc_code.Save(xmlStream_code); xmlStream_code.Flush(); xmlStream_code.Position = 0; ISTAT.IO.Utility.FileGeneric file_code = new ISTAT.IO.Utility.FileGeneric(); file_code.filename = _codeExp.Code.ToString() + ".xml"; file_code.stream = xmlStream_code; files.Add(file_code); Stream streamCSV = CSVWriter.CreateStream(_codeExp.DataView); ISTAT.IO.Utility.FileGeneric file_csv = new ISTAT.IO.Utility.FileGeneric(); file_csv.filename = _codeExp.DataFilename; file_csv.stream = streamCSV; files.Add(file_csv); string fileZip = System.Web.HttpContext.Current.Server.MapPath("OutputFiles" + "\\" + ExportFileName + ".zip"); System.IO.File.Delete(fileZip); Ionic.Utils.Zip.ZipFile zip = new Ionic.Utils.Zip.ZipFile(fileZip); foreach (ISTAT.IO.Utility.FileGeneric file in files) zip.AddFileStream(file.filename, string.Empty, file.stream); zip.Save(); SendAttachment(fileZip, ExportFileName + ".zip"); }
public void SaveDotSTATFile(ISdmxObjects sdmxObjects, DotStatExportType exportType) { string ExportFileName; ExportFileName = "DotStatExport-" + sdmxObjects.DataStructures.First().Id + "_" + sdmxObjects.DataStructures.First().AgencyId + "_" + sdmxObjects.DataStructures.First().Version; List<ISTAT.IO.Utility.FileGeneric> files = new List<ISTAT.IO.Utility.FileGeneric>(); List<ContactRef> contacs = GetConfigContact(); List<SecurityDef> securities = GetConfigSecurity(); DSDExporter _dsdExp = new DSDExporter(sdmxObjects); switch (exportType) { case DotStatExportType.DSD: if (_dsdExp.CreateData( contacs, securities, true, false)) { System.Xml.XmlDocument xDoc = _dsdExp.XMLDoc; MemoryStream xmlStream = new MemoryStream(); xDoc.Save(xmlStream); xmlStream.Flush(); xmlStream.Position = 0; ISTAT.IO.Utility.FileGeneric file = new ISTAT.IO.Utility.FileGeneric(); file.filename = ExportFileName + ".xml"; file.stream = xmlStream; files.Add(file); } break; case DotStatExportType.CODELIST: if (_dsdExp.CreateData( contacs, securities, true, false)) { foreach (CodelistExporter _codeExp in _dsdExp.ExporterCodelists) { System.Xml.XmlDocument xDoc_code = _codeExp.XMLDoc; MemoryStream xmlStream_code = new MemoryStream(); xDoc_code.Save(xmlStream_code); xmlStream_code.Flush(); xmlStream_code.Position = 0; ISTAT.IO.Utility.FileGeneric file_code = new ISTAT.IO.Utility.FileGeneric(); file_code.filename = _codeExp.Code.ToString() + ".xml"; file_code.stream = xmlStream_code; files.Add(file_code); Stream streamCSV = CSVWriter.CreateStream(_codeExp.DataView); ISTAT.IO.Utility.FileGeneric file_csv = new ISTAT.IO.Utility.FileGeneric(); file_csv.filename = _codeExp.DataFilename; file_csv.stream = streamCSV; files.Add(file_csv); } } break; case DotStatExportType.ALL: if (_dsdExp.CreateData( contacs, securities, true, false)) { System.Xml.XmlDocument xDoc = _dsdExp.XMLDoc; MemoryStream xmlStream = new MemoryStream(); xDoc.Save(xmlStream); xmlStream.Flush(); xmlStream.Position = 0; ISTAT.IO.Utility.FileGeneric file = new ISTAT.IO.Utility.FileGeneric(); file.filename = ExportFileName + ".xml"; file.stream = xmlStream; files.Add(file); foreach (CodelistExporter _codeExp in _dsdExp.ExporterCodelists) { System.Xml.XmlDocument xDoc_code = _codeExp.XMLDoc; MemoryStream xmlStream_code = new MemoryStream(); xDoc_code.Save(xmlStream_code); xmlStream_code.Flush(); xmlStream_code.Position = 0; ISTAT.IO.Utility.FileGeneric file_code = new ISTAT.IO.Utility.FileGeneric(); file_code.filename = _codeExp.Code.ToString() + ".xml"; file_code.stream = xmlStream_code; files.Add(file_code); Stream streamCSV = CSVWriter.CreateStream(_codeExp.DataView); ISTAT.IO.Utility.FileGeneric file_csv = new ISTAT.IO.Utility.FileGeneric(); file_csv.filename = _codeExp.DataFilename; file_csv.stream = streamCSV; files.Add(file_csv); } } break; } string fileZip = System.Web.HttpContext.Current.Server.MapPath("OutputFiles" + "\\" + ExportFileName + ".zip"); System.IO.File.Delete(fileZip); Ionic.Utils.Zip.ZipFile zip = new Ionic.Utils.Zip.ZipFile(fileZip); foreach (ISTAT.IO.Utility.FileGeneric file in files) zip.AddFileStream(file.filename, string.Empty, file.stream); zip.Save(); SendAttachment(fileZip, ExportFileName + ".zip"); }
private void Atualiza(string arquivo) { if (!System.IO.Directory.Exists("C:\\Aliance.NET\\Versao\\Dll")) { System.IO.Directory.CreateDirectory("C:\\Aliance.NET\\Versao\\Dll"); } //Verificar se existe arquivos .ali System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo("c:\\aliance.net\\Versao\\Dll"); foreach (System.IO.FileInfo file in dir.GetFiles("*.ali")) { if (file.Name.Substring(file.Name.LastIndexOf('.') + 1, 3).Trim().Equals("ali")) { System.IO.File.Delete(file.DirectoryName + "\\" + file.Name); } } lblMsg.Items.Add("Fazendo Download Versão " + arquivo.Substring(0, arquivo.IndexOf('.'))); // download FtpWebRequest req = (FtpWebRequest)WebRequest.Create(Properties.Settings.Default.servidorFTP + "/" + arquivo); req.Method = WebRequestMethods.Ftp.DownloadFile; req.Credentials = new NetworkCredential(Properties.Settings.Default.loginFTP, Properties.Settings.Default.senhaFTP); req.UsePassive = true; req.UseBinary = true; req.KeepAlive = true; // busca tamanho do arquivo FtpWebRequest ftpsize = (FtpWebRequest)WebRequest.Create(Properties.Settings.Default.servidorFTP + "/" + arquivo); ftpsize.Method = WebRequestMethods.Ftp.GetFileSize; ftpsize.Credentials = new NetworkCredential(Properties.Settings.Default.loginFTP, Properties.Settings.Default.senhaFTP); ftpsize.UsePassive = true; ftpsize.UseBinary = true; ftpsize.KeepAlive = true; FtpWebResponse respsize = (FtpWebResponse)ftpsize.GetResponse(); FtpWebResponse resp = (FtpWebResponse)req.GetResponse(); byte[] buffer = new byte[2048]; if (!System.IO.Directory.Exists("c:\\aliance.net\\Versao\\Dll")) { System.IO.Directory.CreateDirectory("c:\\aliance.net\\Versao\\Dll"); } System.IO.FileStream newFile = new System.IO.FileStream("c:\\aliance.net\\Versao\\Dll\\" + arquivo, System.IO.FileMode.Create); System.IO.Stream responseStream = resp.GetResponseStream(); int readCount = responseStream.Read(buffer, 0, buffer.Length); progressBar1.Maximum = (int)respsize.ContentLength; progressBar1.Visible = (int)respsize.ContentLength == 0 ? false : true; while (readCount > 0) { progressBar1.Value = (int)newFile.Length; newFile.Write(buffer, 0, readCount); readCount = responseStream.Read(buffer, 0, buffer.Length); } lblMsg.Items.Add("Download efetuado com sucesso! "); newFile.Close(); responseStream.Close(); resp.Close(); //Verificar se existe alguma instancia do Aliance Aberta foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcessesByName("Aliance.NET")) { p.Kill(); p.WaitForExit(); } //Descompactar arquivo using (Ionic.Utils.Zip.ZipFile zip = Ionic.Utils.Zip.ZipFile.Read("c:\\aliance.net\\Versao\\Dll\\" + arquivo)) { zip.ExtractAll("c:\\aliance.net\\Versao\\Dll", true); } Properties.Settings.Default.versaoAliance = decimal.Parse(arquivo.Substring(0, arquivo.IndexOf('.'))); Properties.Settings.Default.Save(); }
public string CreateExport(string agency, string id, string version, List<string> dimensions, List<string> attributes, string type_download) { // Retrive Logged user SDMX_Dataloader.Engine.Client client = null; try { client = HttpContext.Current.Session[UserDef.UserSessionKey] as SDMX_Dataloader.Engine.Client; if (client == null) throw new Exception("Session Expiried"); } catch (Exception ex) { return JsonMessage.SessionExpired; } try { if (!UserDef.UserCan(client.LoggedUser, UserDef.ActionDef.DefaultProc)) return JsonMessage.GetError(Resources.Notification.err_action_denied); // Get Settings Properties ISTAT.EXPORT.Settings.ContactSettingsHandler configContact = (ISTAT.EXPORT.Settings.ContactSettingsHandler)System.Configuration.ConfigurationManager.GetSection( "ExportDotStatSettingsGroup/ContactSection"); ISTAT.EXPORT.Settings.SecuritySettingsHandler configSecurity = (ISTAT.EXPORT.Settings.SecuritySettingsHandler)System.Configuration.ConfigurationManager.GetSection( "ExportDotStatSettingsGroup/SecuritySection"); // Get the current user SDMXIdentifier sdmxIdentity = new SDMXIdentifier() { agencyid = agency, id = id, version = version }; string filenameDSD = sdmxIdentity.ToString(); Org.Sdmxsource.Sdmx.Util.Objects.Container.SdmxObjectsImpl sdmxObjects = new Org.Sdmxsource.Sdmx.Util.Objects.Container.SdmxObjectsImpl(); Org.Sdmxsource.Sdmx.Api.Model.Objects.DataStructure.IDataStructureObject dsd = DataSDMX.GetDSD(sdmxIdentity); sdmxObjects.AddDataStructure(dsd); foreach (Org.Sdmxsource.Sdmx.Api.Model.Objects.DataStructure.IDimension dim in dsd.DimensionList.Dimensions){ if (!dim.TimeDimension && dimensions.Contains(dim.Id) && dim.HasCodedRepresentation()) { Org.Sdmxsource.Sdmx.Api.Model.Objects.Codelist.ICodelistObject codelist = DataSDMX.GetCodelist(new SDMXIdentifier() { agencyid = dim.Representation.Representation.MaintainableReference.AgencyId, id = dim.Representation.Representation.MaintainableReference.MaintainableId, version = dim.Representation.Representation.MaintainableReference.Version }); sdmxObjects.AddCodelist(codelist); } } foreach (Org.Sdmxsource.Sdmx.Api.Model.Objects.DataStructure.IAttributeObject att in dsd.Attributes){ if (attributes.Contains(att.Id) && att.HasCodedRepresentation()) { Org.Sdmxsource.Sdmx.Api.Model.Objects.Codelist.ICodelistObject codelist=DataSDMX.GetCodelist(new SDMXIdentifier(){ agencyid = att.Representation.Representation.MaintainableReference.AgencyId, id = att.Representation.Representation.MaintainableReference.MaintainableId, version = att.Representation.Representation.MaintainableReference.Version }); sdmxObjects.AddCodelist(codelist); } } List<ISTAT.IO.Utility.FileGeneric> files = new List<ISTAT.IO.Utility.FileGeneric>(); List<ContactRef> contacs = new List<ContactRef>(); contacs.Add(new ContactRef() { name = configContact.Name, direction = configContact.Direction, email = configContact.Email }); List<SecurityDef> securities = new List<SecurityDef>(); securities.Add(new SecurityDef() { domain = configSecurity.Domain, userGroup = configSecurity.UserGroup, }); DSDExporter _dsdExp = new DSDExporter(sdmxObjects); #region Export DSD if (type_download == "dsd") { if (_dsdExp.CreateData( contacs, securities, true, false)) { System.Xml.XmlDocument xDoc = _dsdExp.XMLDoc; MemoryStream xmlStream = new MemoryStream(); xDoc.Save(xmlStream); xmlStream.Flush(); xmlStream.Position = 0; ISTAT.IO.Utility.FileGeneric file = new ISTAT.IO.Utility.FileGeneric(); file.filename = filenameDSD + ".xml"; file.stream = xmlStream; files.Add(file); } } #endregion #region Export Codelist if (type_download == "codelist") { if (_dsdExp.CreateData( contacs, securities, true, false)) { foreach (CodelistExporter _codeExp in _dsdExp.ExporterCodelists) { System.Xml.XmlDocument xDoc_code = _codeExp.XMLDoc; MemoryStream xmlStream_code = new MemoryStream(); xDoc_code.Save(xmlStream_code); xmlStream_code.Flush(); xmlStream_code.Position = 0; ISTAT.IO.Utility.FileGeneric file_code = new ISTAT.IO.Utility.FileGeneric(); file_code.filename = _codeExp.Code.ToString() + ".xml"; file_code.stream = xmlStream_code; files.Add(file_code); Stream streamCSV = CSVWriter.CreateStream(_codeExp.DataView); ISTAT.IO.Utility.FileGeneric file_csv = new ISTAT.IO.Utility.FileGeneric(); file_csv.filename = _codeExp.DataFilename; file_csv.stream = streamCSV; files.Add(file_csv); } } } #endregion #region Export ALL if (type_download == "all") { if (_dsdExp.CreateData( contacs, securities, true, false)) { System.Xml.XmlDocument xDoc = _dsdExp.XMLDoc; MemoryStream xmlStream = new MemoryStream(); xDoc.Save(xmlStream); xmlStream.Flush(); xmlStream.Position = 0; ISTAT.IO.Utility.FileGeneric file = new ISTAT.IO.Utility.FileGeneric(); file.filename = filenameDSD + ".xml"; file.stream = xmlStream; files.Add(file); foreach (CodelistExporter _codeExp in _dsdExp.ExporterCodelists) { System.Xml.XmlDocument xDoc_code = _codeExp.XMLDoc; MemoryStream xmlStream_code = new MemoryStream(); xDoc_code.Save(xmlStream_code); xmlStream_code.Flush(); xmlStream_code.Position = 0; ISTAT.IO.Utility.FileGeneric file_code = new ISTAT.IO.Utility.FileGeneric(); file_code.filename = _codeExp.Code.ToString() + ".xml"; file_code.stream = xmlStream_code; files.Add(file_code); Stream streamCSV = CSVWriter.CreateStream(_codeExp.DataView); ISTAT.IO.Utility.FileGeneric file_csv = new ISTAT.IO.Utility.FileGeneric(); file_csv.filename = _codeExp.DataFilename; file_csv.stream = streamCSV; files.Add(file_csv); } } } #endregion string fileZip = System.Web.HttpContext.Current.Server.MapPath(@"~\Temp\\" + filenameDSD + ".zip"); System.IO.File.Delete(fileZip); Ionic.Utils.Zip.ZipFile zip = new Ionic.Utils.Zip.ZipFile(fileZip); foreach (ISTAT.IO.Utility.FileGeneric file in files) zip.AddFileStream(file.filename, string.Empty, file.stream); zip.Save(); client.FileToDownload = fileZip; return JsonMessage.EmptyJSON; } catch (Exception ex) { Logger.Error(ex.Message); return JsonMessage.ErrorOccured; } }