using System.Collections.Generic; using UnityEngine; public class CabinetListData : CsvData { public string ID { get; set; } public string Selection { get; set; } public string Unique_Name { get; set; } public string Cab_Image { get; set; } public string Sub_Filter_Language { get { string Sub_Filter = ""; if (_G.L == 1) { Sub_Filter = GetPrivateValueFirst(Sub_Filter_Language_1, Sub_Filter_Language_1_Private); } else if (_G.L == 2) { Sub_Filter = GetPrivateValueFirst(Sub_Filter_Language_2, Sub_Filter_Language_2_Private); } else if (_G.L == 3) { Sub_Filter = GetPrivateValueFirst(Sub_Filter_Language_3, Sub_Filter_Language_3_Private); } if (string.IsNullOrEmpty(Sub_Filter)) { Sub_Filter = GetPrivateValueFirst(Sub_Filter_Language_1, Sub_Filter_Language_1_Private); } return Sub_Filter; } } public string Sub_Filter_Language_1 { get; set; } public string Sub_Filter_Language_1_Private { get; set; } public string Sub_Filter_Language_2 { get; set; } public string Sub_Filter_Language_2_Private { get; set; } public string Sub_Filter_Language_3 { get; set; } public string Sub_Filter_Language_3_Private { get; set; } public string Description_Language { get { string description_Language = ""; if (_G.L == 1) { description_Language = GetPrivateValueFirst(Description_Language_1, Description_Language_1_Private); } else if (_G.L == 2) { description_Language = GetPrivateValueFirst(Description_Language_2, Description_Language_2_Private); } else if (_G.L == 3) { description_Language = GetPrivateValueFirst(Description_Language_3, Description_Language_3_Private); } if (string.IsNullOrEmpty(description_Language)) { description_Language = GetPrivateValueFirst(Description_Language_1, Description_Language_1_Private); } return description_Language; } } public string Description_Language_1 { get; set; } public string Description_Language_1_Private { get; set; } public string Description_Language_2 { get; set; } public string Description_Language_2_Private { get; set; } public string Description_Language_3 { get; set; } public string Description_Language_3_Private { get; set; } public string A_Min { get; set; } public string A_Value { get; set; } public string A_Max { get; set; } public string B_Min { get; set; } public string B_Value { get; set; } public string B_Max { get; set; } public string C_Min { get; set; } public string C_Value { get; set; } public string C_Max { get; set; } public string D_Min { get; set; } public string D_Value { get; set; } public string D_Max { get; set; } public string E_Min { get; set; } public string E_Value { get; set; } public string E_Max { get; set; } public string F_Min { get; set; } public string F_Value { get; set; } public string F_Max { get; set; } public string K_Value { get; set; } public string Pattern_Door_1 { get; set; } public string Pattern_Door_2 { get; set; } public string Flip { get; set; } public string Cab_Sub_Category { get; set; } public string Cab_Category { get; set; } public string Distance_From_Floor_Default { get; set; } public string Cab_Category_Long { get; set; } public string Allow_Sink { get; set; } public string Insert_Height { get; set; } public string Exterior_Finish_Recipe { get; set; } public string Fix_Variable_Door_Pattern_1 { get; set; } public string Fix_Variable_Door_Pattern_2 { get; set; } public string Are_Sides_Finished { get; set; } public string Is_Under_Finished { get; set; } public string Cutout_Edges { get; set; } public string Tambour_Edges { get; set; } public string Glass_Edges { get; set; } public string Shelve_Projection { get; set; } public string Is_Projection_Shelve_Round { get; set; } public string Library_Name { get; set; } public string Is_Suspended { get; set; } public string Special{ get; set; } public CabinetListData(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); switch (keyValue.Key) { case CsvHeaders.ID: ID = element; break; case CsvHeaders.Selection: Selection = element; break; case CsvHeaders.Unique_Name: Unique_Name = element; break; case CsvHeaders.Cab_Image: Cab_Image = element; break; case CsvHeaders.Sub_Filter_Language_1: Sub_Filter_Language_1 = element; break; case CsvHeaders.Sub_Filter_Language_1_Private: Sub_Filter_Language_1_Private = element; break; case CsvHeaders.Sub_Filter_Language_2: Sub_Filter_Language_2 = element; break; case CsvHeaders.Sub_Filter_Language_2_Private: Sub_Filter_Language_2_Private = element; break; case CsvHeaders.Sub_Filter_Language_3: Sub_Filter_Language_3 = element; break; case CsvHeaders.Sub_Filter_Language_3_Private: Sub_Filter_Language_3_Private = element; break; case CsvHeaders.Description_Language_1: Description_Language_1 = element; break; case CsvHeaders.Description_Language_1_Private: Description_Language_1_Private = element; break; case CsvHeaders.Description_Language_2: Description_Language_2 = element; break; case CsvHeaders.Description_Language_2_Private: Description_Language_2_Private = element; break; case CsvHeaders.Description_Language_3: Description_Language_3 = element; break; case CsvHeaders.Description_Language_3_Private: Description_Language_3_Private = element; break; case CsvHeaders.A_Min: A_Min = element; break; case CsvHeaders.A_Value: A_Value = element; break; case CsvHeaders.A_Max: A_Max = element; break; case CsvHeaders.B_Min: B_Min = element; break; case CsvHeaders.B_Value: B_Value = element; break; case CsvHeaders.B_Max: B_Max = element; break; case CsvHeaders.C_Min: C_Min = element; break; case CsvHeaders.C_Value: C_Value = element; break; case CsvHeaders.C_Max: C_Max = element; break; case CsvHeaders.D_Min: D_Min = element; break; case CsvHeaders.D_Value: D_Value = element; break; case CsvHeaders.D_Max: D_Max = element; break; case CsvHeaders.E_Min: E_Min = element; break; case CsvHeaders.E_Value: E_Value = element; break; case CsvHeaders.E_Max: E_Max = element; break; case CsvHeaders.F_Min: F_Min = element; break; case CsvHeaders.F_Value: F_Value = element; break; case CsvHeaders.F_Max: F_Max = element; break; case CsvHeaders.K_Value: K_Value = element; break; case CsvHeaders.Pattern_Door_1: Pattern_Door_1 = element; break; case CsvHeaders.Flip: Flip = element; break; case CsvHeaders.Cab_Sub_Category: Cab_Sub_Category = element; break; case CsvHeaders.Cab_Category: Cab_Category = element; break; case CsvHeaders.Distance_From_Floor_Default: Distance_From_Floor_Default = element; break; case CsvHeaders.Cab_Category_Long: Cab_Category_Long = element; break; case CsvHeaders.Pattern_Door_2: Pattern_Door_2 = element; break; case CsvHeaders.Allow_Sink: Allow_Sink = element; break; case CsvHeaders.Insert_Height: Insert_Height = element; break; case CsvHeaders.Exterior_Finish_Recipe: Exterior_Finish_Recipe = element; break; case CsvHeaders.Fix_Variable_Door_Pattern_1: Fix_Variable_Door_Pattern_1 = element; break; case CsvHeaders.Fix_Variable_Door_Pattern_2: Fix_Variable_Door_Pattern_2 = element; break; case CsvHeaders.Are_Sides_Finished: Are_Sides_Finished = element; break; case CsvHeaders.Is_Under_Finished: Is_Under_Finished = element; break; case CsvHeaders.Cutout_Edges: Cutout_Edges = element; break; case CsvHeaders.Tambour_Edges: Tambour_Edges = element; break; case CsvHeaders.Glass_Edges: Glass_Edges = element; break; case CsvHeaders.Shelve_Projection: Shelve_Projection = element; break; case CsvHeaders.Is_Projection_Shelve_Round: Is_Projection_Shelve_Round = element; break; case CsvHeaders.Library_Name: Library_Name = element; break; case CsvHeaders.Is_Suspended: Is_Suspended = element; break; case CsvHeaders.Special: Special= element; break; default: break; } } } public CabinetListData(CabinetListData original) { } public static Dictionary GetDataFromCsv(List loadsFromCsv) { var value = SetHeader(loadsFromCsv); var indexes = InitializeIndexes(value.Item1, value.Item2); return ExtractTFromCsv(loadsFromCsv, value.Item1, indexes, line => new CabinetListData(line, value.Item1, value.Item2, indexes)); } public static Dictionary InitializeIndexes(bool isHeaderSet, List headers) { Dictionary indexes = new(); if (isHeaderSet) { indexes = InitializeIndexesWithHeaders(headers); } else { indexes.Add(CsvHeaders.Unique_Name, 0); indexes.Add(CsvHeaders.Cab_Image, 1); indexes.Add(CsvHeaders.Sub_Filter_Language_1, 2); indexes.Add(CsvHeaders.A_Min, 3); indexes.Add(CsvHeaders.A_Value, 4); indexes.Add(CsvHeaders.A_Max, 5); indexes.Add(CsvHeaders.B_Min, 6); indexes.Add(CsvHeaders.B_Value, 7); indexes.Add(CsvHeaders.B_Max, 8); indexes.Add(CsvHeaders.C_Min, 9); indexes.Add(CsvHeaders.C_Value, 10); indexes.Add(CsvHeaders.C_Max, 11); indexes.Add(CsvHeaders.D_Min, 12); indexes.Add(CsvHeaders.D_Value, 13); indexes.Add(CsvHeaders.D_Max, 14); indexes.Add(CsvHeaders.E_Min, 15); indexes.Add(CsvHeaders.E_Value, 16); indexes.Add(CsvHeaders.E_Max, 17); indexes.Add(CsvHeaders.F_Min, 18); indexes.Add(CsvHeaders.F_Value, 19); indexes.Add(CsvHeaders.F_Max, 20); indexes.Add(CsvHeaders.K_Value, 21); indexes.Add(CsvHeaders.Pattern_Door_1, 22); indexes.Add(CsvHeaders.Flip, 23); indexes.Add(CsvHeaders.Description_Language_1, 24); indexes.Add(CsvHeaders.Cab_Sub_Category, 25); indexes.Add(CsvHeaders.Cab_Category, 26); indexes.Add(CsvHeaders.Distance_From_Floor_Default, 27); indexes.Add(CsvHeaders.Cab_Category_Long, 28); indexes.Add(CsvHeaders.Pattern_Door_2, 29); indexes.Add(CsvHeaders.Allow_Sink, 30); indexes.Add(CsvHeaders.Insert_Height, 31); indexes.Add(CsvHeaders.Exterior_Finish_Recipe, 32); indexes.Add(CsvHeaders.Fix_Variable_Door_Pattern_1, 33); indexes.Add(CsvHeaders.Description_Language_2, 34); indexes.Add(CsvHeaders.Description_Language_3, 35); indexes.Add(CsvHeaders.Fix_Variable_Door_Pattern_2, 36); indexes.Add(CsvHeaders.Are_Sides_Finished, 37); indexes.Add(CsvHeaders.Is_Under_Finished, 38); indexes.Add(CsvHeaders.Cutout_Edges, 39); indexes.Add(CsvHeaders.Tambour_Edges, 40); indexes.Add(CsvHeaders.Glass_Edges, 41); indexes.Add(CsvHeaders.Sub_Filter_Language_2, 42); indexes.Add(CsvHeaders.Sub_Filter_Language_3, 43); indexes.Add(CsvHeaders.Shelve_Projection, 44); indexes.Add(CsvHeaders.Is_Projection_Shelve_Round, 45); indexes.Add(CsvHeaders.Library_Name, 46); indexes.Add(CsvHeaders.Is_Suspended, 47); // current entries : y, n, e47 indexes.Add(CsvHeaders.Special, 48); // current entries : y, n, e47 } return indexes; } public override string GetPropertyValue(CsvHeaders header) { switch (header) { case CsvHeaders.ID: return GetPrivateValueFirst(Unique_Name, ID); case CsvHeaders.Selection: return Selection; case CsvHeaders.Unique_Name: return Unique_Name; case CsvHeaders.Cab_Image: return Cab_Image; case CsvHeaders.Sub_Filter_Language: return Sub_Filter_Language; case CsvHeaders.Sub_Filter_Language_1: return Sub_Filter_Language_1; case CsvHeaders.Sub_Filter_Language_1_Private: return Sub_Filter_Language_1_Private; case CsvHeaders.Sub_Filter_Language_2: return Sub_Filter_Language_2; case CsvHeaders.Sub_Filter_Language_2_Private: return Sub_Filter_Language_2_Private; case CsvHeaders.Sub_Filter_Language_3: return Sub_Filter_Language_3; case CsvHeaders.Sub_Filter_Language_3_Private: return Sub_Filter_Language_3_Private; case CsvHeaders.Description_Language: return Description_Language; case CsvHeaders.Description_Language_1: return Description_Language_1; case CsvHeaders.Description_Language_1_Private: return Description_Language_1_Private; case CsvHeaders.Description_Language_2: return Description_Language_2; case CsvHeaders.Description_Language_2_Private: return Description_Language_2_Private; case CsvHeaders.Description_Language_3: return Description_Language_3; case CsvHeaders.Description_Language_3_Private: return Description_Language_3_Private; case CsvHeaders.A_Min: return A_Min; case CsvHeaders.A_Value: return A_Value; case CsvHeaders.A_Max: return A_Max; case CsvHeaders.B_Min: return B_Min; case CsvHeaders.B_Value: return B_Value; case CsvHeaders.B_Max: return B_Max; case CsvHeaders.C_Min: return C_Min; case CsvHeaders.C_Value: return C_Value; case CsvHeaders.C_Max: return C_Max; case CsvHeaders.D_Min: return D_Min; case CsvHeaders.D_Value: return D_Value; case CsvHeaders.D_Max: return D_Max; case CsvHeaders.E_Min: return E_Min; case CsvHeaders.E_Value: return E_Value; case CsvHeaders.E_Max: return E_Max; case CsvHeaders.F_Min: return F_Min; case CsvHeaders.F_Value: return F_Value; case CsvHeaders.F_Max: return F_Max; case CsvHeaders.K_Value: return K_Value; case CsvHeaders.Pattern_Door_1: return Pattern_Door_1; case CsvHeaders.Pattern_Door_2: return Pattern_Door_2; case CsvHeaders.Flip: return Flip; case CsvHeaders.Cab_Sub_Category: return Cab_Sub_Category; case CsvHeaders.Cab_Category: return Cab_Category; case CsvHeaders.Distance_From_Floor_Default: return Distance_From_Floor_Default; case CsvHeaders.Cab_Category_Long: return Cab_Category_Long; case CsvHeaders.Allow_Sink: return Allow_Sink; case CsvHeaders.Insert_Height: return Insert_Height; case CsvHeaders.Exterior_Finish_Recipe: return Exterior_Finish_Recipe; case CsvHeaders.Fix_Variable_Door_Pattern_1: return Fix_Variable_Door_Pattern_1; case CsvHeaders.Fix_Variable_Door_Pattern_2: return Fix_Variable_Door_Pattern_2; case CsvHeaders.Are_Sides_Finished: return Are_Sides_Finished; case CsvHeaders.Is_Under_Finished: return Is_Under_Finished; case CsvHeaders.Cutout_Edges: return Cutout_Edges; case CsvHeaders.Tambour_Edges: return Tambour_Edges; case CsvHeaders.Glass_Edges: return Glass_Edges; case CsvHeaders.Shelve_Projection: return Shelve_Projection; case CsvHeaders.Is_Projection_Shelve_Round: return Is_Projection_Shelve_Round; case CsvHeaders.Library_Name: return Library_Name; case CsvHeaders.Is_Suspended: return Is_Suspended; case CsvHeaders.Special: return Special; default: Debug.Log("No Property found for " + header.ToString()); return ""; } } public override Dictionary GetFilters() { return null; } }