using System.Collections.Generic; //using System.Drawing.Printing; using UnityEngine; public class GlobalStartListData : CsvData { public string ID { get; set; } public string G_Door { get; set; } public string G_Kick { get; set; } public string G_Int { get; set; } public string G_Ext { get; set; } public string G_Ogee { get; set; } public string G_Cornice { get; set; } public string G_Facia { get; set; } public string G_Valance { get; set; } public string G_Backsplash { get; set; } public string G_Counter { get; set; } public string G_KnobVertical { get; set; } public string G_KnobHorizontal { get; set; } public GlobalStartListData(string line, bool isHeaderSet, List headers, Dictionary indexes) { _line = line; _isHeaderSet = isHeaderSet; _headers = headers; _indexes = indexes; string[] lineElements = line.Split(','); foreach (var keyValue in _indexes) { string element = ExtractElementFromLine(lineElements, keyValue.Value); Debug.Log($"-----------------------------reache start GetDataFromCsv------------------------------------"+element); switch (keyValue.Key) { case CsvHeaders.ID: ID = element; break; case CsvHeaders.G_Door: G_Door = element; break; case CsvHeaders.G_Kick: G_Kick = element; break; case CsvHeaders.G_Int: G_Int = element; break; case CsvHeaders.G_Ext: G_Ext = element; break; case CsvHeaders.G_Ogee: G_Ogee = element; break; case CsvHeaders.G_Cornice: G_Cornice = element; break; case CsvHeaders.G_Facia: G_Facia = element; break; case CsvHeaders.G_Valance: G_Valance = element; break; case CsvHeaders.G_Backsplash: G_Backsplash = element; break; case CsvHeaders.G_Counter: G_Counter = element; break; case CsvHeaders.G_KnobVertical: G_KnobVertical = element; break; case CsvHeaders.G_KnobHorizontal: G_KnobHorizontal = element; break; default: break; } } } public static Dictionary GetDataFromCsv(List loadsFromCsv) { Debug.Log($"-----------------------------reache start GetDataFromCsv------------------------------------"); var value = SetHeader(loadsFromCsv); var indexes = InitializeIndexes(value.isHeaderSet, value.headers); return ExtractTFromCsv(loadsFromCsv, true, indexes, line => new GlobalStartListData(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.ID, 0); indexes.Add(CsvHeaders.G_Door, 1); indexes.Add(CsvHeaders.G_Kick, 2); indexes.Add(CsvHeaders.G_Int, 3); indexes.Add(CsvHeaders.G_Ext, 4); indexes.Add(CsvHeaders.G_Ogee, 5); indexes.Add(CsvHeaders.G_Cornice, 6); indexes.Add(CsvHeaders.G_Facia, 7); indexes.Add(CsvHeaders.G_Valance, 8); indexes.Add(CsvHeaders.G_Backsplash, 9); indexes.Add(CsvHeaders.G_Counter, 10); indexes.Add(CsvHeaders.G_KnobVertical, 11); indexes.Add(CsvHeaders.G_KnobHorizontal, 11); } return indexes; } public override Dictionary GetFilters() { throw new System.NotImplementedException(); } public override string GetPropertyValue(CsvHeaders header) { switch (header) { case CsvHeaders.ID: return ID; case CsvHeaders.G_Door: return G_Door; case CsvHeaders.G_Kick: return G_Kick; case CsvHeaders.G_Int: return G_Int; case CsvHeaders.G_Ext: return G_Ext; case CsvHeaders.G_Ogee: return G_Ogee; case CsvHeaders.G_Cornice: return G_Cornice; case CsvHeaders.G_Facia: return G_Facia; case CsvHeaders.G_Valance: return G_Valance; case CsvHeaders.G_Backsplash: return G_Backsplash; case CsvHeaders.G_Counter: return G_Counter; case CsvHeaders.G_KnobVertical: return G_KnobVertical; case CsvHeaders.G_KnobHorizontal: return G_KnobHorizontal; default: Debug.Log("No Property found for " + header.ToString()); return ""; } } public string GetGlobalValue(GlobalOption option) { CsvHeaders header = CsvHeaders.G_Door; switch (option) { case GlobalOption.Door: header = CsvHeaders.G_Door; break; case GlobalOption.Int: header = CsvHeaders.G_Int; break; case GlobalOption.Ext: header = CsvHeaders.G_Ext; break; case GlobalOption.Kick: header = CsvHeaders.G_Kick; break; case GlobalOption.Fascia: header = CsvHeaders.G_Facia; break; case GlobalOption.Ogee: header = CsvHeaders.G_Ogee; break; case GlobalOption.Valance: header = CsvHeaders.G_Valance; break; case GlobalOption.KnobV: header = CsvHeaders.G_KnobVertical; break; case GlobalOption.Counter: header = CsvHeaders.G_Counter; break; case GlobalOption.Splash: header = CsvHeaders.G_Backsplash; break; case GlobalOption.KnobH: header = CsvHeaders.G_KnobHorizontal; break; //case GlobalOption.OPTIONSRECIPE_11: header = CsvHeaders.; break; default: Debug.Log($"Not implemented or missing global option. ({option.ToString()})"); return "none"; } return GetPropertyValue(header); } }