private static DataRow ConvertTupleIntoDataRow(DataTable dt, AbstractTuple t, StructuredDataStructure sts)
{
DataRow dr = dt.NewRow();
foreach(var vv in t.VariableValues)
{
if (vv.VariableId > 0)
{
string valueAsString="";
if (vv.Value == null)
{
dr["ID" + vv.VariableId.ToString()] = DBNull.Value;
}
else
{
valueAsString = vv.Value.ToString();
Variable varr = sts.Variables.Where(p => p.Id == vv.VariableId).SingleOrDefault();
switch (varr.DataAttribute.DataType.SystemType)
{
case "String":
{
dr["ID" +vv.VariableId.ToString()] = valueAsString;
break;
}
case "Double":
{
double value;
if (double.TryParse(valueAsString, out value))
dr["ID" + vv.VariableId.ToString()] = Convert.ToDouble(valueAsString);
else
dr["ID" + vv.VariableId.ToString()] = -99999;//double.MaxValue;
break;
}
case "Int16":
{
Int16 value;
if(Int16.TryParse(valueAsString,out value))
dr["ID" + vv.VariableId.ToString()] = Convert.ToInt16(valueAsString);
else
dr["ID" + vv.VariableId.ToString()] = Int16.MaxValue;
break;
}
case "Int32":
{
Int32 value;
if(Int32.TryParse(valueAsString,out value))
dr["ID" + vv.VariableId.ToString()] = Convert.ToInt32(valueAsString);
else
dr["ID" + vv.VariableId.ToString()] = Int32.MaxValue;
break;
}
case "Int64":
{
Int64 value;
if(Int64.TryParse(valueAsString,out value))
dr["ID" + vv.VariableId.ToString()] = Convert.ToInt64(valueAsString);
else
dr["ID" + vv.VariableId.ToString()] = Int64.MaxValue;
break;
}
case "Decimal":
{
decimal value;
if (decimal.TryParse(valueAsString, out value))
dr["ID" + vv.VariableId.ToString()] = Convert.ToDecimal(valueAsString);
else
dr["ID" + vv.VariableId.ToString()] = -99999;//decimal.MaxValue;
break;
}
case "Float":
{
decimal value;
if (decimal.TryParse(valueAsString, out value))
dr["ID" + vv.VariableId.ToString()] = Convert.ToDecimal(valueAsString);
else
dr["ID" + vv.VariableId.ToString()] = -99999;
break;
}
case "DateTime":
{
if (!String.IsNullOrEmpty(valueAsString))
dr["ID"+vv.VariableId.ToString()] = Convert.ToDateTime(valueAsString, CultureInfo.InvariantCulture);
else
dr["ID" + vv.VariableId.ToString()] = DateTime.MaxValue;
break;
}
default:
{
if (!String.IsNullOrEmpty(vv.Value.ToString()))
dr["ID"+vv.VariableId.ToString()] = valueAsString;
else
dr["ID" + vv.VariableId.ToString()] = DBNull.Value;
break;
}
}
}
/*if (vv.ParameterValues.Count > 0)
{
foreach (var pu in vv.ParameterValues)
{
dr[pu.Parameter.Label.Replace(" ", "")] = pu.Value;
}
}*/
}
}
return dr;
}