Пример #1
0
        private DataRow ConvertTupleIntoDataRow(DataTable dt, AbstractTuple t, StructuredDataStructure sts)
        {
            DataRow dr         = dt.NewRow();
            string  columnName = "";

            foreach (var vv in t.VariableValues)
            {
                columnName = "var" + vv.VariableId.ToString();

                if (vv.VariableId > 0)
                {
                    string valueAsString = "";
                    if (vv.Value == null)
                    {
                        dr[columnName] = DBNull.Value;
                    }
                    else
                    {
                        valueAsString = vv.Value.ToString();

                        Dlm.Entities.DataStructure.Variable varr = sts.Variables.Where(p => p.Id == vv.VariableId).SingleOrDefault();
                        switch (varr.DataAttribute.DataType.SystemType)
                        {
                        case "String":
                        {
                            dr[columnName] = valueAsString;

                            break;
                        }

                        case "Double":
                        {
                            double value;
                            if (double.TryParse(valueAsString, out value))
                            {
                                dr[columnName] = value;
                            }
                            else
                            {
                                dr[columnName] = double.MaxValue;
                            }
                            break;
                        }

                        case "Int16":
                        {
                            Int16 value;
                            if (Int16.TryParse(valueAsString, out value))
                            {
                                dr[columnName] = value;
                            }
                            else
                            {
                                dr[columnName] = Int16.MaxValue;
                            }
                            break;
                        }

                        case "Int32":
                        {
                            Int32 value;
                            if (Int32.TryParse(valueAsString, out value))
                            {
                                dr[columnName] = value;
                            }
                            else
                            {
                                dr[columnName] = Int32.MaxValue;
                            }
                            break;
                        }

                        case "Int64":
                        {
                            Int64 value;
                            if (Int64.TryParse(valueAsString, out value))
                            {
                                dr[columnName] = value;
                            }
                            else
                            {
                                dr[columnName] = Int64.MaxValue;
                            }
                            break;
                        }

                        case "Decimal":
                        {
                            decimal value;
                            if (decimal.TryParse(valueAsString, out value))
                            {
                                dr[columnName] = value;
                            }
                            else
                            {
                                dr[columnName] = decimal.MaxValue;
                            }
                            break;
                        }

                        case "Float":
                        {
                            decimal value;
                            if (decimal.TryParse(valueAsString, out value))
                            {
                                dr[columnName] = value;
                            }
                            else
                            {
                                dr[columnName] = decimal.MaxValue;
                            }
                            break;
                        }

                        case "DateTime":
                        {
                            if (!String.IsNullOrEmpty(valueAsString))
                            {
                                dr[columnName] = Convert.ToDateTime(valueAsString, CultureInfo.InvariantCulture);
                            }
                            else
                            {
                                dr[columnName] = DateTime.MaxValue;
                            }

                            break;
                        }

                        default:
                        {
                            if (!String.IsNullOrEmpty(vv.Value.ToString()))
                            {
                                dr[columnName] = valueAsString;
                            }
                            else
                            {
                                dr[columnName] = DBNull.Value;
                            }

                            break;
                        }
                        }
                    }
                }
            }

            return(dr);
        }
Пример #2
0
        /// <summary>
        /// This function convert a datatuple into datarow for a datatable to show on the client side
        /// the grid in the client side (in client mode) has unknow problem with value 0 and null
        /// So every empty cell get the max value of the specific Systemtype.
        /// On the client side this values replaced with ""
        /// </summary>
        /// <param name="dt"></param>
        /// <param name="t"></param>
        /// <returns></returns>
        private static DataRow ConvertTupleIntoDataRow(DataTable dt, AbstractTuple t, StructuredDataStructure sts, bool useLabelsAsColumnName = false)
        {
            DataRow dr         = dt.NewRow();
            string  columnName = "";

            foreach (var vv in t.VariableValues)
            {
                Variable variable = sts.Variables.FirstOrDefault(v => v.Id.Equals(vv.VariableId));

                columnName = useLabelsAsColumnName == true ? variable.Label : "ID" + vv.VariableId.ToString();

                if (vv.VariableId > 0)
                {
                    string valueAsString = "";
                    if (vv.Value == null)
                    {
                        dr[columnName] = DBNull.Value;
                    }
                    else
                    {
                        valueAsString = vv.Value.ToString();

                        Dlm.Entities.DataStructure.Variable varr = sts.Variables.Where(p => p.Id == vv.VariableId).SingleOrDefault();
                        switch (varr.DataAttribute.DataType.SystemType)
                        {
                        case "String":
                        {
                            dr[columnName] = valueAsString;

                            break;
                        }

                        case "Double":
                        {
                            double value;
                            if (double.TryParse(valueAsString, out value))
                            {
                                dr[columnName] = Convert.ToDouble(valueAsString);
                            }
                            else
                            {
                                dr[columnName] = -99999;        //double.MaxValue;
                            }
                            break;
                        }

                        case "Int16":
                        {
                            Int16 value;
                            if (Int16.TryParse(valueAsString, out value))
                            {
                                dr[columnName] = Convert.ToInt16(valueAsString);
                            }
                            else
                            {
                                dr[columnName] = Int16.MaxValue;
                            }
                            break;
                        }

                        case "Int32":
                        {
                            Int32 value;
                            if (Int32.TryParse(valueAsString, out value))
                            {
                                dr[columnName] = Convert.ToInt32(valueAsString);
                            }
                            else
                            {
                                dr[columnName] = Int32.MaxValue;
                            }
                            break;
                        }

                        case "Int64":
                        {
                            Int64 value;
                            if (Int64.TryParse(valueAsString, out value))
                            {
                                dr[columnName] = Convert.ToInt64(valueAsString);
                            }
                            else
                            {
                                dr[columnName] = Int64.MaxValue;
                            }
                            break;
                        }

                        case "Decimal":
                        {
                            decimal value;
                            if (decimal.TryParse(valueAsString, out value))
                            {
                                dr[columnName] = Convert.ToDecimal(valueAsString);
                            }
                            else
                            {
                                dr[columnName] = -99999;        //decimal.MaxValue;
                            }
                            break;
                        }

                        case "Float":
                        {
                            decimal value;
                            if (decimal.TryParse(valueAsString, out value))
                            {
                                dr[columnName] = Convert.ToDecimal(valueAsString);
                            }
                            else
                            {
                                dr[columnName] = -99999;
                            }
                            break;
                        }

                        case "DateTime":
                        {
                            if (!String.IsNullOrEmpty(valueAsString))
                            {
                                dr[columnName] = Convert.ToDateTime(valueAsString, CultureInfo.InvariantCulture);
                            }
                            else
                            {
                                dr[columnName] = DateTime.MaxValue;
                            }

                            break;
                        }

                        default:
                        {
                            if (!String.IsNullOrEmpty(vv.Value.ToString()))
                            {
                                dr[columnName] = valueAsString;
                            }
                            else
                            {
                                dr[columnName] = DBNull.Value;
                            }

                            break;
                        }
                        }
                    }



                    /*if (vv.ParameterValues.Count > 0)
                     * {
                     *  foreach (var pu in vv.ParameterValues)
                     *  {
                     *      dr[pu.Parameter.Label.Replace(" ", "")] = pu.Value;
                     *  }
                     * }*/
                }
            }

            return(dr);
        }