protected string GetStringFormat(Dlm.Entities.DataStructure.DataType datatype) { DataTypeDisplayPattern ddp = DataTypeDisplayPattern.Materialize(datatype.Extra); if (ddp != null) { return(ddp.StringPattern); } return(""); }
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); }
protected string GetFormatedValue(object value, Dlm.Entities.DataStructure.DataType datatype, string format) { string tmp = value.ToString(); if (DataTypeUtility.IsTypeOf(value, datatype.SystemType)) { //Type type = Type.GetType("System." + datatype.SystemType); switch (DataTypeUtility.GetTypeCode(datatype.SystemType)) { case DataTypeCode.Int16: case DataTypeCode.Int32: case DataTypeCode.Int64: { Int64 newValue = Convert.ToInt64(tmp); return(newValue.ToString(format)); } case DataTypeCode.UInt16: case DataTypeCode.UInt32: case DataTypeCode.UInt64: { UInt64 newValue = Convert.ToUInt64(tmp); return(newValue.ToString(format)); } case DataTypeCode.Decimal: case DataTypeCode.Double: { Double newValue = Convert.ToDouble(tmp); return(newValue.ToString(format)); } case DataTypeCode.DateTime: { DateTime dateTime; return(IOUtility.ExportDateTimeString(value.ToString(), format, out dateTime)); } default: return(tmp); } } return(""); }
protected override bool AddRow(DataRow row, long rowIndex) { // number of columns int colCount = row.Table.Columns.Count; // content of one line string[] line = new string[colCount]; // append contents for (int i = 0; i < colCount; i++) { // get value as string string value = row[i].ToString(); // check if the value is a missing value and should be replaced Variable variable = dataStructure.Variables.ElementAt(i); if (variable != null) { //checking for display pattern Dlm.Entities.DataStructure.DataType dataType = variable.DataAttribute.DataType; string format = GetStringFormat(dataType); if (!string.IsNullOrEmpty(format)) { value = GetFormatedValue(value, dataType, format); } else { value = value.ToString(); } // checking for missing values 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 to result data.AppendLine(String.Join(this.separator, line)); return(true); }
public DataTypeElement(long dataTypeId) { DataTypeManager dtm = null; try { dtm = new DataTypeManager(); Dlm.Entities.DataStructure.DataType dataType = dtm.Repo.Get(dataTypeId); Id = dataType.Id; Name = dataType.Name; Description = dataType.Description; SystemType = dataType.SystemType; } finally { dtm.Dispose(); } }
protected override bool AddRow(string[] row, long rowIndex) { List <string> newRow = new List <string>(); // set vor missing values for (int i = 0; i < row.Length; i++) { var value = row[i]; // check if the value is a missing value and should be replaced var variable = dataStructure.Variables.ElementAt(i); if (variable != null) { //checking for display pattern Dlm.Entities.DataStructure.DataType dataType = variable.DataAttribute.DataType; string format = GetStringFormat(dataType); if (!string.IsNullOrEmpty(format)) { value = GetFormatedValue(value, dataType, format); } else { value = value.ToString(); } if (variable.MissingValues.Any(mv => mv.Placeholder.Equals(value))) { value = variable.MissingValues.FirstOrDefault(mv => mv.Placeholder.Equals(value)).DisplayName; } } newRow.Add(value); } // Add to result data.AppendLine(String.Join(this.separator, newRow.ToArray())); return(true); }
public DataTypeModel() { dataType = new Dlm.Entities.DataStructure.DataType(); pattern = null; }
/// <summary> /// Read Row and convert each value into a variableValue /// and each row to a Datatuple /// </summary> /// <param name="row">List of values in one row</param> /// <param name="indexOfRow">Currently row index</param> /// <returns>DataTuple</returns> public DataTuple ReadRow(List <string> row, int indexOfRow) { DataTuple dt = new DataTuple(); string value = ""; // convert row to List<VariableValue> for (int i = 0; i < row.Count(); i++) { VariableIdentifier variableIdentifier = this.SubmitedVariableIdentifiers.ElementAt(i); long variableId = 0; if (variableIdentifier.id > 0) { variableId = this.SubmitedVariableIdentifiers.ElementAt(i).id; } else { variableId = getVariableUsage(variableIdentifier).Id; } // if variable from systemtype datatime // maybee needs to convert into the default datetime culture format if (this.StructuredDataStructure.Variables.Where(p => p.Id.Equals(variableId)).FirstOrDefault().DataAttribute.DataType.SystemType.Equals("DateTime")) { Dlm.Entities.DataStructure.DataType dataType = this.StructuredDataStructure.Variables.Where(p => p.Id.Equals(variableId)).FirstOrDefault().DataAttribute.DataType; if (dataType != null && dataType.Extra != null) { DataTypeDisplayPattern dp = DataTypeDisplayPattern.Materialize(dataType.Extra); if (dp != null && !string.IsNullOrEmpty(dp.StringPattern)) { value = IOUtility.ConvertToDateUS(row[i], dp.StringPattern); } else { value = IOUtility.ConvertDateToCulture(row[i]); } } else { value = IOUtility.ConvertDateToCulture(row[i]); } } else { if (this.StructuredDataStructure.Variables.Where(p => p.Id.Equals(variableId)).FirstOrDefault().DataAttribute.DataType.SystemType.Equals("Double") || this.StructuredDataStructure.Variables.Where(p => p.Id.Equals(variableId)).FirstOrDefault().DataAttribute.DataType.SystemType.Equals("Decimal") || this.StructuredDataStructure.Variables.Where(p => p.Id.Equals(variableId)).FirstOrDefault().DataAttribute.DataType.SystemType.Equals("Float")) { value = row[i]; if (Info.Decimal.Equals(DecimalCharacter.comma)) { if (value.Contains(".")) { value = value.Replace(".", ""); } if (value.Contains(",")) { value = value.Replace(',', '.'); } } if (Info.Decimal.Equals(DecimalCharacter.point)) { if (value.Contains(",")) { value = value.Remove(','); } } } else { value = row[i]; } } dt.VariableValues.Add(DatasetManager.CreateVariableValue(value, "", DateTime.Now, DateTime.Now, new ObtainingMethod(), variableId, new List <ParameterValue>())); } return(dt); }
/// <summary> /// Read Row and convert each value into a variableValue /// and each row to a Datatuple /// </summary> /// <param name="row">List of values in one row</param> /// <param name="indexOfRow">Currently row index</param> /// <returns>DataTuple</returns> public DataTuple ReadRow(List <string> row, int indexOfRow) { if (row == null) { return(null); } if (row.Count == 1 && string.IsNullOrEmpty(row.ElementAt(0))) { return(null); } if (row.Count > this.StructuredDataStructure.Variables.Count || row.Count < this.StructuredDataStructure.Variables.Count) { throw new Exception("Number of values different then the number of values."); } DataTuple dt = new DataTuple(); string value = ""; // convert row to List<VariableValue> for (int i = 0; i < row.Count(); i++) { VariableIdentifier variableIdentifier = this.SubmitedVariableIdentifiers.ElementAt(i); long variableId = 0; if (variableIdentifier.id > 0) { variableId = this.SubmitedVariableIdentifiers.ElementAt(i).id; } else { variableId = getVariableUsage(variableIdentifier).Id; } //if the value is a missing value get the placeholder ValueValidationManager validationManager = ValueValidationManagerDic[variableId]; if (!validationManager.ValueIsMissingValueGetPlaceHolder(row[i], i, out value)) // jump over this code if its a missing value { // if variable from systemtype datatime // maybee needs to convert into the default datetime culture format if (this.StructuredDataStructure.Variables.Where(p => p.Id.Equals(variableId)).FirstOrDefault().DataAttribute.DataType.SystemType.Equals("DateTime")) { Dlm.Entities.DataStructure.DataType dataType = this.StructuredDataStructure.Variables.Where(p => p.Id.Equals(variableId)).FirstOrDefault().DataAttribute.DataType; if (dataType != null && dataType.Extra != null) { DataTypeDisplayPattern dp = DataTypeDisplayPattern.Materialize(dataType.Extra); if (dp != null && !string.IsNullOrEmpty(dp.StringPattern)) { value = IOUtility.ConvertToDateUS(row[i], dp.StringPattern); } else { value = IOUtility.ConvertDateToCulture(row[i]); } } else { value = IOUtility.ConvertDateToCulture(row[i]); } } else { if (this.StructuredDataStructure.Variables.Where(p => p.Id.Equals(variableId)).FirstOrDefault().DataAttribute.DataType.SystemType.Equals("Double") || this.StructuredDataStructure.Variables.Where(p => p.Id.Equals(variableId)).FirstOrDefault().DataAttribute.DataType.SystemType.Equals("Decimal") || this.StructuredDataStructure.Variables.Where(p => p.Id.Equals(variableId)).FirstOrDefault().DataAttribute.DataType.SystemType.Equals("Float")) { var datatype = this.StructuredDataStructure.Variables.Where(p => p.Id.Equals(variableId)).FirstOrDefault().DataAttribute.DataType.SystemType; value = row[i]; if (Info.Decimal.Equals(DecimalCharacter.comma)) { if (value.Contains(".")) { value = value.Replace(".", ""); } if (value.Contains(",")) { value = value.Replace(',', '.'); } } if (Info.Decimal.Equals(DecimalCharacter.point)) { if (value.Contains(",")) { value = value.Remove(','); } } switch (datatype) { case "Double": { double tmp = 0; if (double.TryParse(value, NumberStyles.Any, new CultureInfo("en-US"), out tmp)) { value = tmp.ToString("G16", new CultureInfo("en-US")); } break; } case "Decimal": { decimal tmp = 0; if (decimal.TryParse(value, NumberStyles.Any, new CultureInfo("en-US"), out tmp)) { value = "" + tmp.ToString("G29", new CultureInfo("en-US")); } break; } case "Float": { float tmp = 0; if (float.TryParse(value, NumberStyles.Any, new CultureInfo("en-US"), out tmp)) { value = "" + tmp.ToString("G7", new CultureInfo("en-US")); } break; } } } else { value = row[i].Trim(); } } } dt.VariableValues.Add(DatasetManager.CreateVariableValue(value, "", DateTime.Now, DateTime.Now, new ObtainingMethod(), variableId, new List <ParameterValue>())); } return(dt); }
protected string GetFormatedValue(object value, Dlm.Entities.DataStructure.DataType datatype, string format) { string tmp = value.ToString(); if (DataTypeUtility.IsTypeOf(value, datatype.SystemType)) { //Type type = Type.GetType("System." + datatype.SystemType); switch (DataTypeUtility.GetTypeCode(datatype.SystemType)) { case DataTypeCode.Int16: case DataTypeCode.Int32: case DataTypeCode.Int64: { Int64 newValue = Convert.ToInt64(tmp); return(newValue.ToString(format)); } case DataTypeCode.UInt16: case DataTypeCode.UInt32: case DataTypeCode.UInt64: { UInt64 newValue = Convert.ToUInt64(tmp); return(newValue.ToString(format)); } case DataTypeCode.Decimal: case DataTypeCode.Double: { Double newValue = Convert.ToDouble(tmp); return(newValue.ToString(format)); } case DataTypeCode.DateTime: { DateTime dateTime; if (DateTime.TryParse(tmp, out dateTime)) { return(dateTime.ToString(format)); } if (DateTime.TryParse(tmp, new CultureInfo("de-DE", false), DateTimeStyles.None, out dateTime)) { return(dateTime.ToString(format)); } if (DateTime.TryParse(tmp, new CultureInfo("en-US", false), DateTimeStyles.None, out dateTime)) { return(dateTime.ToString(format)); } if (DateTime.TryParse(tmp, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime)) { return(dateTime.ToString(format)); } return(tmp); ; } default: return(tmp); } } return(""); }