public void SetModelPropertyData(JArray modelPropertyData)
{
InputParameters = modelPropertyData.Cast<JObject>().Where(inputParameter=>!(bool)inputParameter["IsResult"]).Select<JObject,EffectsInputParameterViewModel>(inputParameter =>
{
switch ((int) inputParameter["ParameterType"])
{
case 1:
// Integer
// todo: if both min and max are specified create slider input
if (inputParameter["Data"]["Min"] != null && inputParameter["Data"]["Max"] != null && !double.IsNaN((double)inputParameter["Data"]["Min"]) && !double.IsNaN((double)inputParameter["Data"]["Max"]))
{
return new EffectsRangeInputParameterViewModel() {Data = inputParameter};
}
else
{
return new EffectsDoubleInputParameterViewModel() {Data = inputParameter};
}
break;
case 6:
// Chemical
return new EffectsChemicalInputParameterViewModel(){Data = inputParameter, ChemicalData = new JArray(Chemicals)};
default:
return null;
}
}).Where(vm=>vm != null);
}