/// <summary> /// convert primary keys to string /// returns null if a emtpy string is inside /// </summary> /// <remarks></remarks> /// <seealso cref=""/> /// <param name="datatuple"></param> /// <param name="primaryKeys"></param> /// <returns></returns> private string getPrimaryKeysAsStringFromXml(AbstractTuple datatuple, List <long> primaryKeys) { string value = ""; foreach (long t in primaryKeys) { // empty means not equals value // so if value is empty add timestamp millisec //datatuple.Materialize(); object v = GetValueXmlDocument(datatuple.XmlVariableValues, t); if (v != null) { //if (!String.IsNullOrEmpty(v.ToString())) if (!String.IsNullOrEmpty((string)v)) { value += ";" + v; } else { return(""); } } else { return(""); } } return(value); }
/// <summary> /// convert primary keys to string /// returns null if a emtpy string is inside /// </summary> /// <remarks></remarks> /// <seealso cref=""/> /// <param name="datatuple"></param> /// <param name="primaryKeys"></param> /// <returns></returns> private string getPrimaryKeysAsString(AbstractTuple datatuple, List <long> primaryKeys) { string value = ""; foreach (long t in primaryKeys) { // empty means not equals value // so if value is empty add timestamp millisec datatuple.Materialize(); object v = datatuple.VariableValues.Where(p => p.VariableId.Equals(t)).First().Value; if (v != null) { if (!String.IsNullOrEmpty(v.ToString())) { //if (!String.IsNullOrEmpty((string)v)) value += ";" + v; } else { return(""); } } else { return(""); } } return(value); }
protected override bool AddRow(AbstractTuple tuple, long rowIndex) { // number of columns int colCount = this.VariableIdentifiers.Count; // content of one line string[] line = new string[colCount]; string value; for (int i = 0; i < this.VariableIdentifiers.Count; i++) { // shortcut var vi = this.VariableIdentifiers[i]; Variable variable = dataStructure.Variables.Where(p => p.Id == vi.id).SingleOrDefault(); if (variable != null) { Dlm.Entities.DataStructure.DataType dataType = variable.DataAttribute.DataType; VariableValue vv = tuple.VariableValues.Where(v => v.VariableId.Equals(vi.id)).FirstOrDefault(); if (vv != null && vv.Value != null) { // checking for display pattern string format = GetStringFormat(dataType); if (!string.IsNullOrEmpty(format)) { value = GetFormatedValue(vv.Value, dataType, format); } else { value = vv.Value.ToString(); } // check if the value is a missing value and should be replaced if (variable.MissingValues.Any(mv => mv.Placeholder.Equals(value))) { value = variable.MissingValues.FirstOrDefault(mv => mv.Placeholder.Equals(value)).DisplayName; } // Add value to row line[i] = escapeValue(value); } } } // add line to result data.AppendLine(String.Join(this.separator, line)); return(true); }
/// <summary> /// /// </summary> /// <remarks></remarks> /// <seealso cref=""/> /// <param name="newDatatuple"></param> /// <param name="sourceDatatuple"></param> /// <returns></returns> //temporary solution: norman :Equal2 //ToDo need Tests private bool Equal(AbstractTuple newDatatuple, AbstractTuple sourceDatatuple) { if (newDatatuple.JsonVariableValues == null && newDatatuple.VariableValues != null) { newDatatuple.Dematerialize(); } if (sourceDatatuple.JsonVariableValues == null && sourceDatatuple.VariableValues != null) { sourceDatatuple.Dematerialize(); } return(newDatatuple.JsonVariableValues.Equals(sourceDatatuple.JsonVariableValues)); }
/// <summary> /// /// </summary> /// <remarks></remarks> /// <seealso cref=""/> /// <param name="newDatatuple"></param> /// <param name="sourceDatatuple"></param> /// <returns></returns> //temporary solution: norman :Equal2 private bool Equal(AbstractTuple newDatatuple, AbstractTuple sourceDatatuple) { foreach (VariableValue newVariableValue in newDatatuple.VariableValues) { long varID = newVariableValue.VariableId; object ValueNew = newVariableValue.Value; object ValueSource = GetValueXmlDocument(sourceDatatuple.XmlVariableValues, varID); if (!ValueNew.Equals(ValueSource)) { return(false); } } return(true); }
/// <summary> /// add a row to the excel sheet /// </summary> /// <param name="tuple"></param> /// <param name="rowIndex"></param> /// <returns></returns> protected override bool AddRow(AbstractTuple tuple, long rowIndex) { // convert datatuple to row Row row = DatatupleToRow(tuple, (int)rowIndex); // skip rows with only empty cells var hasNonEmptyCell = row.Elements <Cell>() .Any <Cell>(cell => !String.IsNullOrEmpty(cell.InnerText)); if (!hasNonEmptyCell) { return(false); } // add row sheetData.Append(row); return(true); }
/// <summary> /// Convert a Datatuple to a Row /// </summary> /// <remarks></remarks> /// <seealso cref=""/> /// <param name="dataTuple">Datatuple to convert</param> /// <param name="rowIndex">Position of the Row</param> /// <returns></returns> protected Row DatatupleToRow(AbstractTuple dataTuple, int rowIndex) { Row row = new Row(); row.RowIndex = Convert.ToUInt32(rowIndex); int columnIndex = 0; columnIndex += offset; // need to add this empty cell to add cells to the right place row.AppendChild(GetEmptyCell(rowIndex, 0)); foreach (VariableIdentifier variableIdentifier in VariableIdentifiers) { VariableValue variableValue = dataTuple.VariableValues.Where(p => p.VariableId.Equals(variableIdentifier.id)).First(); Cell cell = VariableValueToCell(variableValue, rowIndex, columnIndex); row.AppendChild(cell); } return(row); }
// add a single row to the output file protected abstract bool AddRow(AbstractTuple tuple, long rowIndex);
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); }
/// <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) { 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); }