Skip to content

Commit d59ef22

Browse files
committed
#940 datastructure as csv into dataset package
1 parent 34fac89 commit d59ef22

File tree

2 files changed

+44
-9
lines changed

2 files changed

+44
-9
lines changed

Components/IO/BExIS.Io.Transform.Output/OutputDataStructureManager.cs

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,18 @@
55
using BExIS.Dlm.Services.DataStructure;
66
using BExIS.Dlm.Services.Meanings;
77
using BExIS.IO.DataType.DisplayPattern;
8+
using DocumentFormat.OpenXml.Drawing.Charts;
9+
using DocumentFormat.OpenXml.Math;
810
using Newtonsoft.Json;
911
using System;
1012
using System.Collections.Generic;
1113
using System.Data;
14+
using System.IO;
1215
using System.Linq;
16+
using System.Text;
17+
using System.Web.Configuration;
18+
using Vaiona.Utils.Cfg;
19+
using DataTable = System.Data.DataTable;
1320

1421
namespace BExIS.IO.Transform.Output
1522
{
@@ -426,16 +433,36 @@ public static string GetDataStructureAsJson(long id)
426433
return JsonConvert.SerializeObject(new DataStructureDataTable(id));
427434
}
428435

429-
//public static string GetVariableListAsJson(long id)
430-
//{
431-
// return JsonConvert.SerializeObject(new DataStructureDataList(id), Newtonsoft.Json.Formatting.Indented);
432-
//}
433436

434437
public static DataStructureDataList GetVariableList(long id)
435438
{
436439
return new DataStructureDataList(id);
437440
}
438441

442+
public static string GenerateDataStructureAsText(long datastructureId)
443+
{
444+
StringBuilder stringBuilder = new StringBuilder();
445+
446+
using (var dataStructureManager = new DataStructureManager())
447+
{
448+
StructuredDataStructure dataStructure = new StructuredDataStructure();
449+
dataStructure = dataStructureManager.StructuredDataStructureRepo.Get(datastructureId);
450+
451+
if (dataStructure != null)
452+
{
453+
stringBuilder.AppendLine(String.Join(",", dataStructure.Variables.Select(v => v.Label)));
454+
stringBuilder.AppendLine(String.Join(",", dataStructure.Variables.Select(v => v.Unit?.Name)));
455+
stringBuilder.AppendLine(String.Join(",", dataStructure.Variables.Select(v => v.Description)));
456+
stringBuilder.AppendLine(String.Join(",", dataStructure.Variables.Select(v => v.DataType?.Name)));
457+
stringBuilder.AppendLine(String.Join(",", dataStructure.Variables.Select(v => v.IsValueOptional? "optional" : "mandatory")));
458+
stringBuilder.AppendLine(String.Join(",", dataStructure.Variables.Select(v => v.IsKey?"primary key":"")));
459+
}
460+
}
461+
462+
return stringBuilder.ToString();
463+
}
464+
465+
439466
public static string GenerateDataStructure(long datasetId)
440467
{
441468
string path = "";

Console/BExIS.Web.Shell/Areas/DIM/BExIS.Modules.Dim.UI/Controllers/ExportController.cs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -274,15 +274,24 @@ public ActionResult GenerateZip(long id, long versionid, string format,bool with
274274
DataStructure dataStructure = dataStructureManager.StructuredDataStructureRepo.Get(dataStructureId);
275275

276276
string dataStructurePath = "";
277-
dataStructurePath = storeGeneratedFilePathToContentDiscriptor(id, datasetVersion,
278-
"datastructure", ".json");
277+
dataStructurePath = storeGeneratedFilePathToContentDiscriptor(id, datasetVersion,"datastructure", ".json");
279278
string datastructureFilePath = AsciiWriter.CreateFile(dataStructurePath);
280279

280+
// generate json
281281
string json = OutputDataStructureManager.GetDataStructureAsJson(dataStructureId);
282-
283282
AsciiWriter.AllTextToFile(datastructureFilePath, json);
284283

284+
// generate txt
285+
dataStructurePath = storeGeneratedFilePathToContentDiscriptor(id, datasetVersion,"datastructure", ".csv");
286+
datastructureFilePath = AsciiWriter.CreateFile(dataStructurePath);
287+
288+
string txt = OutputDataStructureManager.GenerateDataStructureAsText(dataStructureId);
289+
290+
AsciiWriter.AllTextToFile(datastructureFilePath, txt);
291+
292+
// generate html
285293
generateDataStructureHtml(datasetVersion);
294+
286295
}
287296

288297
#endregion
@@ -573,8 +582,7 @@ private void generateDataStructureHtml(DatasetVersion dsv)
573582
byte[] content = Encoding.ASCII.GetBytes(view.ToString());
574583

575584
string dynamicPathOfMD = "";
576-
dynamicPathOfMD = storeGeneratedFilePathToContentDiscriptor(dsv.Dataset.Id, dsv,
577-
"datastructure", ".html");
585+
dynamicPathOfMD = storeGeneratedFilePathToContentDiscriptor(dsv.Dataset.Id, dsv,"datastructure", ".html");
578586
string metadataFilePath = AsciiWriter.CreateFile(dynamicPathOfMD);
579587

580588
AsciiWriter.AllTextToFile(metadataFilePath, view.ToString());

0 commit comments

Comments
 (0)