Models

Data Model for handy extension funtions

Data Models are designed for serveral uses:

  • cache data

  • extension functions, prevent from using primitive types


CSV Data

// build data
CsvData csvData = CsvData.Builder()
    .WithHeaderFields("No", "Name", "Address")
    .WithFields("1", "Peter Ballpen", "Somewhere Villege")
    .WithFields("2", "Apple Cake", "You Guess Garden")
    .Build();

// or with line by line
CsvData csvData = CsvData.Builder()
    .WithHeader("\"No\",\"Name\",\"Address\"")
    .WithLine("\"1\",\"Peter Ballpen\",\"Somewhere Villege\"")
    .WithLine("\"2\",\"Apple Cake\",\"You Guess Garden\"")
    .Build();

// check data has header
csvData.HasHeader;

// get header fields
csvData.Header;

// get all lines
IEnumerable<string[]> lines = csvData.Lines;

// get fields of specified line
// not including header
string[] line = csvData[2];

// get columns of csv data
csvData.ColumnCount;

// get lines of csv data
// not including header
csvData.LineCount;

Json Data

// build data with Text or TextAsset
var jsonData = JsonData.Builder()
    .WithText("{\"name\":\"Apple\"}")
    .WithTypeName()    // optional
    .Build();

// build data with JObject or JArray (Newtonsoft.Json)
var jsonData = JsonData.Builder()
    .WithJContainer(jObject)
    .WithTypeName()    // optional
    .Build();

// Get Text
jsonData.Text;

// Get JContainer
jsonData.Container;

Path Data

// build data
var pathData = PathData.Builder()
    .WithPath("path", "to", "somewhere")
    .Build();
    
// get full path
pathData.FullPath;

// get filename
pathData.Filename;

// get filename without extension
pathData.FilenameWithoutExtension;

// get file extension
pathData.FileExtension;

// compare with PathData or String
pathData == pathData2;
pathData == "/path/to/there";

Last updated