public static void ValueSelect(List <Param> Params, List <IValue> Values) { for (int i = 0; i < Params.Count(); i++) //заходим в список параметров { for (int j = 0; j < Values.Count(); j++) //заходим в список значений файла Values.json { if (Params[i].Id == Values[j].Id) //условия нахождения пар по равенству id { if (Params[i].Values != null) // если есть варианты значений (values) в параметре { for (int k = 0; k < Params[i].Values.Count(); k++) //запускаем цикл по данным вариантам значений { ValueInt v = Values[j] as ValueInt; if (Params[i].Values[k].Id == v.intvalue) //если id одного из вариантов совпадает со значением в Values.json { Params[i].SelectedValue = Params[i].Values[k].Title; //выбираем название выбранного значения и присваеваем SelectedValue break; //Конец цикла по возможным вариантам значений } } } else { try { ValueInt v = Values[j] as ValueInt; Params[i].SelectedValue = v.intvalue; } catch (Exception) { ValueString v = Values[j] as ValueString; Params[i].SelectedValue = v.stringvalue; } } } } if (Params[i].SelectedValue == null) { Params[i].SelectedValue = ""; } } }
public static List <IValue> ReadFromValue() { List <IValue> values = new List <IValue>(); string json = File.ReadAllText("Values.json", Encoding.GetEncoding(1251)); // Parse JSON into dynamic object, convenient! JObject parameters = JObject.Parse(json); // Process each employee foreach (var value in parameters["values"]) { // this can be a string or null // this can be a string or array, how can we tell which it is JToken Value = value["value"]; try { int id = (int)value["id"]; ValueInt v = new ValueInt { Id = id }; var valueName = (int)Value; v.intvalue = valueName; values.Add(v); } catch { int id = (int)value["id"]; ValueString v = new ValueString { Id = id }; var valueName = (string)Value; v.stringvalue = valueName; values.Add(v); } } return(values); }