using System.Collections.Generic; //using System.Runtime.Remoting.Messaging; using UnityEngine; public class PreferencesListData : CsvData { public string ID { get; set; } public string Member { get; set; } public string Kick_Height { get; set; } public string Kick_Depth { get; set; } public string Door_Gap { get; set; } public string Counter_List { get; set; } public string Counter_Height { get; set; } public string Counter_Projection { get; set; } public string Filler_On_Size { get; set; } public string Counter_On_Size { get; set; } public PreferencesListData(string line, bool isHeaderSet, List headers, Dictionary indexes) { _line = line; _isHeaderSet = isHeaderSet; _headers = headers; _indexes = indexes; ID = "PR_01"; string[] lineElements = line.Split(','); foreach (var keyValue in _indexes) { string element = ExtractElementFromLine(lineElements, keyValue.Value); switch (keyValue.Key) { case CsvHeaders.ID: ID = ID = element; break; case CsvHeaders.Member: Member = element; break; case CsvHeaders.Kick_Height: Kick_Height = element; break; case CsvHeaders.Kick_Depth: Kick_Depth = element; break; case CsvHeaders.Door_Gap: Door_Gap = element; break; case CsvHeaders.Counter_List: Counter_List = element; break; case CsvHeaders.Counter_Height: Counter_Height = element; break; case CsvHeaders.Counter_Projection: Counter_Projection = element; break; case CsvHeaders.Filler_On_Size: Filler_On_Size = element; break; case CsvHeaders.Counter_On_Size: Counter_On_Size = element; break; default: break; } } } public static Dictionary GetDataFromCsv(List loadsFromCsv) { var value = SetHeader(loadsFromCsv); var indexes = InitializeIndexes(value.Item1, value.Item2); return ExtractTFromCsv(loadsFromCsv, true, indexes, line => new PreferencesListData(line, true, value.headers, indexes)); } public static Dictionary InitializeIndexes(bool isHeaderSet, List headers) { Dictionary indexes = new(); if (isHeaderSet) { indexes = InitializeIndexesWithHeaders(headers); } else { indexes.Add(CsvHeaders.Member, 0); indexes.Add(CsvHeaders.Kick_Height, 1); indexes.Add(CsvHeaders.Kick_Depth, 2); indexes.Add(CsvHeaders.Door_Gap, 3); indexes.Add(CsvHeaders.Counter_List, 4); indexes.Add(CsvHeaders.Counter_Height, 5); indexes.Add(CsvHeaders.Counter_Projection, 6); indexes.Add(CsvHeaders.Filler_On_Size, 7); indexes.Add(CsvHeaders.Counter_On_Size, 8); } return indexes; } public override string GetPropertyValue(CsvHeaders header) { switch (header) { case CsvHeaders.ID: return ID; case CsvHeaders.Member: return Member; case CsvHeaders.Kick_Height: return Kick_Height; case CsvHeaders.Kick_Depth: return Kick_Depth; case CsvHeaders.Door_Gap: return Door_Gap; case CsvHeaders.Counter_List: return Counter_List; case CsvHeaders.Counter_Height: return Counter_Height; case CsvHeaders.Counter_Projection: return Counter_Projection; case CsvHeaders.Filler_On_Size: return Filler_On_Size; case CsvHeaders.Counter_On_Size: return Counter_On_Size; default: Debug.Log("No Property found for " + header.ToString()); return ""; } } public override Dictionary GetFilters() { throw new System.NotImplementedException(); } }