public virtual string getNodeDescription(IObjectWithPathAndChildSelector source, string defDescription = "") { if (source is IObjectWithNameAndDescription) { IObjectWithNameAndDescription child_IObjectWithNameAndDescription = (IObjectWithNameAndDescription)source; return(child_IObjectWithNameAndDescription.description); } return(defDescription); }
/// <summary> /// Builds the data table hor. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="items">The items.</param> /// <param name="extraColumn">The extra column.</param> /// <param name="columns">The columns.</param> /// <returns></returns> public static DataTable BuildDataTableHor <T>(this T items, PropertyEntryColumn extraColumn, params string[] columns) where T : IEnumerable, IObjectWithNameAndDescription { if (items is IObjectWithNameAndDescription) { IObjectWithNameAndDescription items_IObjectWithNameAndDescription = (IObjectWithNameAndDescription)items; return(items.BuildDataTableHorizontal(items_IObjectWithNameAndDescription.name, items_IObjectWithNameAndDescription.description, extraColumn, columns)); } return(items.BuildDataTableHorizontal("Instance list", "", extraColumn, columns)); }
/// <summary> /// Initializes a new instance of the <see cref="PropertyEntry"/> class. /// </summary> /// <param name="key">The key.</param> /// <param name="value">The value.</param> /// <param name="name">Initial value for Display Name</param> /// <param name="description">Initial description - overide of description found in <c>value</c> object</param> /// <param name="relevance">The relevance - override of info found in <c>value</c></param> /// <seealso cref="imbSCI.Core.interfaces.IValueWithRoleInfo"/> /// <seealso cref="imbSCI.Core.interfaces.IValueWithUnitInfo"/> /// <seealso cref="imbSCI.Core.interfaces.IValueWithImportanceInfo"/> /// <seealso cref="IObjectWithNameAndDescription"/> public PropertyEntry(Object key, Object value, String name = "", String description = "", dataPointImportance relevance = dataPointImportance.normal) { // this.setFromEnumType(typeof(PropertyEntryColumn)); this[PropertyEntryColumn.entry_key] = key; Object input = value; this[PropertyEntryColumn.entry_name] = name; this[PropertyEntryColumn.entry_description] = description; this[PropertyEntryColumn.entry_importance] = relevance.ToString(); this[PropertyEntryColumn.entry_value] = value; if (value is IValueWithUnitInfo) { IValueWithUnitInfo value_IValueWithUnitInfo = (IValueWithUnitInfo)value; this[PropertyEntryColumn.entry_unit] = value_IValueWithUnitInfo.unit_sufix; this[PropertyEntryColumn.entry_unitname] = value_IValueWithUnitInfo.unit_name; } if (input is IValueWithRoleInfo) { IValueWithRoleInfo input_IValueWithRoleInfo = (IValueWithRoleInfo)input; this[PropertyEntryColumn.role_letter] = input_IValueWithRoleInfo.role_letter; this[PropertyEntryColumn.role_name] = input_IValueWithRoleInfo.role_name; this[PropertyEntryColumn.role_symbol] = input_IValueWithRoleInfo.role_symbol; } if (input is IObjectWithNameAndDescription) { IObjectWithNameAndDescription input_IObjectWithNameAndDescription = (IObjectWithNameAndDescription)input; this[PropertyEntryColumn.entry_name] = input_IObjectWithNameAndDescription.name; this[PropertyEntryColumn.entry_description] = input_IObjectWithNameAndDescription.description; } if (input is IValueWithImportanceInfo) { IValueWithImportanceInfo input_IValueWithImportanceInfo = (IValueWithImportanceInfo)input; this[PropertyEntryColumn.entry_importance] = input_IValueWithImportanceInfo.relevance.ToString(); } if (imbSciStringExtensions.isNullOrEmptyString(this[PropertyEntryColumn.entry_name])) { this[PropertyEntryColumn.entry_name] = key.ToString().imbTitleCamelOperation(true); } if (imbSciStringExtensions.isNullOrEmptyString(this[PropertyEntryColumn.entry_description])) { //this[PropertyEntryColumn.entry_description] = this. this.getStringLine(",", PropertyEntryColumn.role_name, PropertyEntryColumn.entry_unitname, PropertyEntryColumn.role_letter); } }
/// <summary> /// Builds the diagram model from an object with children /// </summary> /// <param name="source">The source.</param> /// <returns></returns> public override diagramModel buildModel(diagramModel output, IObjectWithPathAndChildSelector source) { if (source == null) { throw new ArgumentNullException("can-t build model :: source is null" + "Diagram = source is null"); } if (output == null) { output = new diagramModel("", "", diagramDirectionEnum.LR); if (source is IObjectWithNameAndDescription) { IObjectWithNameAndDescription source_IObjectWithNameAndDescription = (IObjectWithNameAndDescription)source; output.name = source_IObjectWithNameAndDescription.name; output.description = source_IObjectWithNameAndDescription.description; } } diagramNode parent = buildNode(output, source); //parent.relatedObject = source; List <diagramNode> childNodes = new List <diagramNode>(); childNodes = buildChildren(output, parent, source, diagramNodeShapeEnum.normal, diagramLinkTypeEnum.normal, true); int c = 1; while (childNodes.Any()) { c++; if (c > childDepthLimit) { break; } List <diagramNode> newChildNodes = new List <diagramNode>(); foreach (diagramNode childNode in childNodes) { if (childNode.relatedObject is IEnumerable) { newChildNodes.AddRange(buildChildren(output, childNode, childNode.relatedObject as IEnumerable, diagramNodeShapeEnum.normal, diagramLinkTypeEnum.normal, true)); } } childNodes = newChildNodes; } return(output); }
/// <summary> /// Sets the item. /// </summary> /// <param name="pi">The pi.</param> protected void setItem(PropertyInfo pi) { basicDisplayItem displayInfo = new basicDisplayItem(pi); bdis.Add(pi, displayInfo); if (displayGroup == null) { displayGroup = displayGroups["Main"]; } if (displayInfo.attributes.ContainsKey(imbAttributeName.measure_displayGroup)) { displayGroup = displayGroups[displayInfo.attributes.getMessage(imbAttributeName.measure_displayGroup, "Main")]; if (displayGroup.description.isNullOrEmptyString()) { displayGroup.description = displayInfo.attributes.getMessage(imbAttributeName.measure_displayGroupDescripton, "."); } } else { //pi.getAttributeValueOrDefault<DescriptionAttribute>(displayGroup, pi) } Int32 priority = displayInfo.attributes.getMessage <Int32>(imbAttributeName.viewPriority, 100); calcGroupId = displayInfo.attributes.getMessage <Int32>(imbAttributeName.measure_calcGroup, calcGroupId); Object tmp = pi.PropertyType.getInstance(); if (tmp is IObjectWithNameAndDescription) { IObjectWithNameAndDescription tmp_IObjectWithName = (IObjectWithNameAndDescription)tmp; tmp_IObjectWithName.name = displayInfo.displayName; tmp_IObjectWithName.description = displayInfo.description; } if (tmp is IValueWithImportanceInfo) { IValueWithImportanceInfo tmp_IValueWithImportanceInfo = (IValueWithImportanceInfo)tmp; tmp_IValueWithImportanceInfo.relevance = displayInfo.attributes.getMessage <dataPointImportance>(imbAttributeName.measure_important, dataPointImportance.normal); } if (tmp is IMeasure) { IMeasure im = (IMeasure)tmp; im.isAlarmTurnedOn = displayInfo.attributes.ContainsKey(imbAttributeName.measure_setAlarm); im.valueRange.setValueRange(displayInfo.attributes.getMessage <aceRangeConfig>(imbAttributeName.measure_setRange)); im.alarmCriteria.setCriteria(displayInfo.attributes.getMessage <aceCriterionConfig>(imbAttributeName.measure_setAlarm)); im.metaModelName = displayInfo.attributes.getMessage(imbAttributeName.measure_metaModelName, im.name); im.metaModelPrefix = displayInfo.attributes.getMessage(imbAttributeName.measure_metaModelPrefix, "MN"); im.doUnitOptimization = displayInfo.attributes.getMessage <Boolean>(imbAttributeName.measure_optimizeUnit, false); Tuple <Enum, String, String, String, String> tup = displayInfo.attributes.getMessageObj(imbAttributeName.measure_setRole) as Tuple <Enum, String, String, String, String>; if (tup != null) { //im.setCustomRoleEntry(bDI.attributes.getMessageObj(imbAttributeName.measure_setRole) as Tuple<Enum, String, String, String, String>) im.info.unit = im.getUnitEntry(displayInfo.attributes.getMessage <measureSystemUnitEntry>(imbAttributeName.measure_setUnit)); im.info.role = im.getRoleEntry(displayInfo.attributes.getMessage <measureSystemUnitEntry>(imbAttributeName.measure_setRole)); } //displayGroup.AddAtEnd(im); //calcGroups[calcGroupId].AddAtEnd(im); } //Add(pi.Name, tmp); }
/// <summary> /// Deserializes the data table. /// </summary> /// <param name="filename">The filename or filepath.</param> /// <param name="format">The format to read from</param> /// <param name="directory">The directory (if filename was supplied and not full filepath)</param> /// <param name="table">The table.</param> /// <param name="resources">Supports: IObjectWithNameAndDescription</param> /// <returns></returns> /// <exception cref="dataException"> /// File path not accessable: " + filepath - null - null - deserializeDataTable /// or /// Deserialization error - imbDataTableExtensions->deserialize /// </exception> /// <exception cref="NotImplementedException"></exception> public static DataTable deserializeDataTable(this string filename, dataTableExportEnum format, folderNode directory = null, DataTable table = null, params object[] resources) { dataTableIOFlags iOFlags = resources.GetIOFlags(); string output = ""; string filepath = ""; FileInfo fileInfo = null; if (Path.IsPathRooted(filename)) { filepath = filename; } else { if (directory == null) { directory = new DirectoryInfo(Directory.GetCurrentDirectory()); } filepath = directory.pathFor(filename, getWritableFileMode.existing, table.GetDescription()); } if (!File.Exists(filepath)) { throw new dataException("File path not accessable: " + filepath, null, null, "deserializeDataTable"); } fileInfo = new FileInfo(filepath); if (table == null) { table = new DataTable(); } IObjectWithNameAndDescription ownerWithName = resources.getFirstOfType <IObjectWithNameAndDescription>(false, null, true); if (ownerWithName == null) { table.TableName = Path.GetFileNameWithoutExtension(filepath); } else { table.TableName = ownerWithName.name; table.ExtendedProperties.Add(templateFieldDataTable.data_tabledesc, ownerWithName.description); } switch (format) { case dataTableExportEnum.csv: // <---------------- postoji vec u ekstenzijama CSV resenje StreamReader sr = new StreamReader(fileInfo.FullName); throw new NotImplementedException(); //var csvr = new CsvReader(sr); // csvr.ReadHeader(); // csvr.Configuration.WillThrowOnMissingField = false; // foreach (string column in csvr.FieldHeaders) // { // var DataColumn = table.Columns.Add(column.Replace("__", "_")); // } //while (csvr.Read()) //{ // var row = table.NewRow(); // foreach (DataColumn column in table.Columns) // { // string vl = csvr.GetField(column.DataType, column.ColumnName).toStringSafe(); // vl = vl.Replace(".", ""); // vl = vl.Replace(",", "."); // row[column.ColumnName] = vl; // } // table.Rows.Add(row); //} /* * IEnumerable<DataRow> rows = csvr.GetRecords<DataRow>(); * foreach (DataRow dr in rows) * { * DataRow tdr = table.NewRow(); * foreach (DataColumn dc in table.Columns) * { * tdr[dc] = dr[dc.ColumnName]; * } * table.Rows.Add(tdr); * }*/ break; case dataTableExportEnum.excel: try { using (ExcelPackage pck = new ExcelPackage(fileInfo)) { var dts = pck.ToDataSet(iOFlags.HasFlag(dataTableIOFlags.firstRowColumnNames)); table = dts.Tables.imbFirstSafe() as DataTable; } } catch (Exception ex) { throw new dataException("Deserialization error", ex, table, "imbDataTableExtensions->deserialize"); } /* * * // <--- OVO POSTOJI DOLE U KOMANDI toDataSet * using (ExcelPackage pck = new ExcelPackage(fileInfo)) * { * ExcelWorksheet ws = pck.Workbook.Worksheets[0]; * //ws.GetValue(0,) * Int32 c = 1; * Int32 r = 1; * Boolean headersOk = false; * List<String> headers = new List<string>(); * String head = ws.GetValue(r, c).toStringSafe(); * * for (int i = 1; i < ws.Dimension.Columns; i++) * { * DataColumn dc = new DataColumn(c.toOrdinalLetter(false)); * head = ws.GetValue(r, c).toStringSafe(); * if (head.isWord()) * { * headers.Add(head); * } * * dc.ExtendedProperties.Add(templateFieldDataTable.col_id, i); * dc.ExtendedProperties.Add(templateFieldDataTable.col_name, i.toOrdinalLetter()); * table.Columns.Add(dc); * c++; * } * * if (headers.Count() >= ws.Dimension.Columns) headersOk = true; * * if (headersOk) * { * c = 0; * foreach (DataColumn dc in table.Columns) * { * dc.Caption = headers[c]; * c++; * } * r++; * } * * for (int i = r; i < ws.Dimension.Rows; i++) * { * DataRow dr = table.NewRow(); * foreach (DataColumn dc in table.Columns) * { * dr[dc] = ws.GetValue(i, dc.Ordinal); * } * table.Rows.Add(dr); * r++; * } * } */ output = fileInfo.FullName; break; case dataTableExportEnum.json: string json = openBase.openFileToString(filepath, true); table = objectSerialization.DeserializeJson <DataTable>(json); break; case dataTableExportEnum.markdown: throw new NotImplementedException(); break; case dataTableExportEnum.xml: string xml = openBase.openFileToString(filepath, true); table.ReadXml(xml); break; default: break; } table.NormalizeColumnNames(); return(table); }