public string GenerateAsciiFile(string ns, DataTable table, string title, string mimeType, long dataStructureId) { string ext = ""; TextSeperator textSeperator = TextSeperator.semicolon; switch (mimeType) { case "text/csv": { ext = ".csv"; textSeperator = TextSeperator.semicolon; break; } default: { ext = ".txt"; textSeperator = TextSeperator.tab; break; } } AsciiWriter writer = new AsciiWriter(textSeperator); // write to file // if there is already a file, replace it string path = generateDownloadFile(ns, dataStructureId, title, ext, writer); writer.AddDataTuples(table, path, dataStructureId); return(path); }
public string GenerateAsciiFile(string ns, DataTable table, string title, string mimeType, long dataStructureId, bool withUnits = false) { string ext = ""; TextSeperator textSeperator = TextSeperator.semicolon; switch (mimeType) { case "text/csv": case "text/comma-separated-values": case "application/octet-stream": /* of course this is a wrong mimetype for csv. * but the c# class MimeMapping.GetMimeMapping(ext) currently returns this as a result for .csv. * since we don't use the datatype at the moment, * it will be rebuilt into the case here*/ { ext = ".csv"; textSeperator = TextSeperator.semicolon; break; } case "text/tsv": case "text/tab-separated-values": { ext = ".tsv"; textSeperator = TextSeperator.tab; break; } default: { ext = ".txt"; textSeperator = TextSeperator.tab; break; } } AsciiWriter writer = new AsciiWriter(textSeperator); // write to file // if there is already a file, replace it string path = createDownloadFile(ns, dataStructureId, title, ext, writer); string[] units = null; string[] columns = null; if (withUnits) { columns = getColumnNames(table); units = getUnits(dataStructureId, columns); } writer.AddData(table, path, dataStructureId, units); return(path); }
/// <summary> /// Get a Textseparator as a Character /// </summary> /// <param name="sep"></param> /// <remarks></remarks> /// <seealso cref=""/> /// <returns>TextSeperator as character</returns> public static char GetSeperator(TextSeperator sep) { switch (sep) { case TextSeperator.comma: return ','; case TextSeperator.semicolon: return ';'; case TextSeperator.space: return ' '; case TextSeperator.tab: default: return '\t'; } }
/// <summary> /// Get TextSeperator as string /// </summary> /// <remarks></remarks> /// <seealso cref=""/> /// <param name="seperator">TextSeperator enum Type</param> /// <returns>TextSeperator as string</returns> public static string GetSeperatorAsString(TextSeperator sep) { switch (sep) { case TextSeperator.comma: return TextSeperator.comma.ToString(); case TextSeperator.semicolon: return TextSeperator.semicolon.ToString(); case TextSeperator.space: return TextSeperator.space.ToString(); case TextSeperator.tab: return TextSeperator.tab.ToString(); default: return TextSeperator.tab.ToString(); } }
/// <summary> /// Get a Textseparator as a Character /// </summary> /// <param name="sep"></param> /// <remarks></remarks> /// <seealso cref=""/> /// <returns>TextSeperator as character</returns> public static char GetSeperator(TextSeperator sep) { switch (sep) { case TextSeperator.comma: return(','); case TextSeperator.semicolon: return(';'); case TextSeperator.space: return(' '); case TextSeperator.tab: default: return('\t'); } }
/// <summary> /// Get TextSeperator as string /// </summary> /// <remarks></remarks> /// <seealso cref=""/> /// <param name="seperator">TextSeperator enum Type</param> /// <returns>TextSeperator as string</returns> public static string GetSeperatorAsString(TextSeperator sep) { switch (sep) { case TextSeperator.comma: return(TextSeperator.comma.ToString()); case TextSeperator.semicolon: return(TextSeperator.semicolon.ToString()); case TextSeperator.space: return(TextSeperator.space.ToString()); case TextSeperator.tab: return(TextSeperator.tab.ToString()); default: return(TextSeperator.tab.ToString()); } }
public string GenerateAsciiFile(long id, long versionId, string mimeType, bool withUnits) { DatasetManager datasetManager = new DatasetManager(); DataStructureManager datasetStructureManager = new DataStructureManager(); try { DatasetVersion datasetVersion = datasetManager.GetDatasetVersion(versionId); int versionNr = datasetManager.GetDatasetVersionNr(datasetVersion); string contentDescriptorTitle = ""; string ext = ""; string nameExt = ""; TextSeperator textSeperator = TextSeperator.semicolon; if (withUnits) { nameExt = "_withunits"; } switch (mimeType) { case "text/csv": case "text/comma-separated-values": case "application/octet-stream": /* of course this is a wrong mimetype for csv. * but the c# class MimeMapping.GetMimeMapping(ext) currently returns this as a result for .csv. * since we don't use the datatype at the moment, * it will be rebuilt into the case here*/ { contentDescriptorTitle = "generatedCSV" + nameExt; ext = ".csv"; textSeperator = TextSeperator.semicolon; break; } case "text/tsv": case "text/tab-separated-values": { contentDescriptorTitle = "generatedTSV" + nameExt; ext = ".tsv"; textSeperator = TextSeperator.tab; break; } default: { contentDescriptorTitle = "generatedTXT" + nameExt; ext = ".txt"; textSeperator = TextSeperator.tab; break; } } AsciiWriter writer = new AsciiWriter(textSeperator); string path = ""; //ascii allready exist if (datasetVersion.ContentDescriptors.Count(p => p.Name.Equals(contentDescriptorTitle) && p.URI.Contains(datasetVersion.Id.ToString())) > 0 && !withUnits) { #region FileStream exist ContentDescriptor contentdescriptor = datasetVersion.ContentDescriptors.Where(p => p.Name.Equals(contentDescriptorTitle)).FirstOrDefault(); path = Path.Combine(AppConfiguration.DataPath, contentdescriptor.URI); if (FileHelper.FileExist(path)) { return(path); } #endregion FileStream exist } // not exist, needs to generated - get data first as datatable DataTable data = getData(id, versionId); long datastuctureId = datasetVersion.Dataset.DataStructure.Id; path = createDownloadFile(id, versionNr, datastuctureId, "data", ext, writer, null, withUnits); storeGeneratedFilePathToContentDiscriptor(id, datasetVersion, ext, withUnits); //add units if want string[] units = null; if (withUnits) { units = getUnits(datastuctureId, null); } writer.AddData(data, path, datastuctureId, units); return(path); } finally { datasetManager.Dispose(); datasetStructureManager.Dispose(); } }
/// <summary> /// /// </summary> /// <remarks></remarks> /// <seealso cref=""/> /// <param name="delimeter"></param> public AsciiWriter(TextSeperator delimeter) { Delimeter = delimeter; }
/// <summary> /// /// </summary> /// <remarks></remarks> /// <seealso cref=""/> /// <param name="delimeter"></param> public AsciiWriter(TextSeperator delimeter) : base() { Delimeter = delimeter; }
/// <summary> /// /// </summary> /// <remarks></remarks> /// <seealso cref=""/> /// <param>NA</param> public AsciiWriter() { Delimeter = TextSeperator.comma; }
public string GenerateAsciiFile(long id, long versionId, string title, string mimeType) { DatasetManager datasetManager = new DatasetManager(); try { DatasetVersion datasetVersion = datasetManager.GetDatasetVersion(versionId); string contentDescriptorTitle = ""; string ext = ""; TextSeperator textSeperator = TextSeperator.semicolon; switch (mimeType) { case "text/csv": { contentDescriptorTitle = "generatedCSV"; ext = ".csv"; textSeperator = TextSeperator.semicolon; break; } default: { contentDescriptorTitle = "generatedTXT"; ext = ".txt"; textSeperator = TextSeperator.tab; break; } } AsciiWriter writer = new AsciiWriter(textSeperator); string path = ""; //ascii allready exist if (datasetVersion.ContentDescriptors.Count(p => p.Name.Equals(contentDescriptorTitle) && p.URI.Contains(datasetVersion.Id.ToString())) > 0) { #region FileStream exist ContentDescriptor contentdescriptor = datasetVersion.ContentDescriptors.Where(p => p.Name.Equals(contentDescriptorTitle)).FirstOrDefault(); path = Path.Combine(AppConfiguration.DataPath, contentdescriptor.URI); if (FileHelper.FileExist(path)) { return(path); } else { List <long> datatupleIds = datasetManager.GetDatasetVersionEffectiveTupleIds(datasetVersion); long datastuctureId = datasetVersion.Dataset.DataStructure.Id; path = generateDownloadFile(id, datasetVersion.Id, datastuctureId, "Data", ext, writer); storeGeneratedFilePathToContentDiscriptor(id, datasetVersion, ext); writer.AddDataTuples(datasetManager, datatupleIds, path, datastuctureId); return(path); } #endregion } // not exist needs to generated else { #region FileStream not exist List <long> datatupleIds = datasetManager.GetDatasetVersionEffectiveTupleIds(datasetVersion); long datastuctureId = datasetVersion.Dataset.DataStructure.Id; path = generateDownloadFile(id, datasetVersion.Id, datastuctureId, "data", ext, writer); storeGeneratedFilePathToContentDiscriptor(id, datasetVersion, ext); writer.AddDataTuples(datasetManager, datatupleIds, path, datastuctureId); return(path); #endregion } } finally { datasetManager.Dispose(); } }