public DataSourse GetData(string ini) { DataSourse dataSourse = new DataSourse(); if (!string.IsNullOrWhiteSpace(ini)) AnalyticPDM.TableReference(ini, ref dataSourse); return dataSourse; }
public DataSourse GetData(string ini) { DataSourse dataSourse = new DataSourse(); if (!string.IsNullOrWhiteSpace(ini)) { AnalyticPDM.TableReference(ini, ref dataSourse); } return(dataSourse); }
public static void TableReference(string pdm, ref DataSourse dataSourse) { XElement xelement1; try { if (File.Exists(pdm)) { xelement1 = XElement.Load(pdm); } else { dataSourse.m_ErrorMessage = "不存在" + pdm + " 文件,请在“连接数据源”->“PowerDesigner”中设置"; return; } } catch { dataSourse.m_ErrorMessage = "请先关闭 " + pdm + " 文件,然后再试"; return; } dataSourse.ListTable = new List <TableData>(); dataSourse.ListReference = new List <Reference>(); dataSourse.ListView = new List <ViewData>(); XNamespace xNamespaceAttribute = (XNamespace)"attribute"; XNamespace xnamespace1 = (XNamespace)"collection"; XNamespace xnamespace2 = (XNamespace)"object"; IEnumerable <XElement> enumerable1 = Enumerable.Select <XElement, XElement>(Extensions.Elements <XElement>(Extensions.Elements <XElement>(Extensions.Elements <XElement>(Extensions.Elements <XElement>(xelement1.Elements())), xnamespace1 + "References"), xnamespace2 + "Reference"), (Func <XElement, XElement>)(r => r)); IEnumerable <XElement> enumerable2 = Enumerable.Select <XElement, XElement>(Extensions.Elements <XElement>(Extensions.Elements <XElement>(Extensions.Elements <XElement>(Extensions.Elements <XElement>(xelement1.Elements())), xnamespace1 + "Tables"), xnamespace2 + "Table"), (Func <XElement, XElement>)(x => x)); IEnumerable <XElement> enumerable3 = Enumerable.Select <XElement, XElement>(Extensions.Elements <XElement>(Extensions.Elements <XElement>(Extensions.Elements <XElement>(Extensions.Elements <XElement>(xelement1.Elements())), xnamespace1 + "Views"), xnamespace2 + "View"), (Func <XElement, XElement>)(r => r)); IEnumerable <XElement> source = Enumerable.Select <XElement, XElement>(Extensions.Elements <XElement>(Extensions.Elements <XElement>(Extensions.Elements <XElement>(Extensions.Elements <XElement>(xelement1.Elements())), xnamespace1 + "DBMS"), xnamespace2 + "Shortcut"), (Func <XElement, XElement>)(r => r)); foreach (XElement xelement2 in enumerable2) { TableData table = new TableData(); table.Id = Enumerable.FirstOrDefault <string>(Enumerable.Select <XAttribute, string>(xelement2.Attributes((XName)"Id"), (Func <XAttribute, string>)(t => t.Value))); table.Name = Enumerable.FirstOrDefault <string>(Enumerable.Select <XElement, string>(xelement2.Elements(xNamespaceAttribute + "Name"), (Func <XElement, string>)(t => t.Value))); table.Code = Enumerable.FirstOrDefault <string>(Enumerable.Select <XElement, string>(xelement2.Elements(xNamespaceAttribute + "Code"), (Func <XElement, string>)(t => t.Value))); table.PrimaryKey = new Key() { KeyId = Enumerable.FirstOrDefault <string>(Enumerable.Select <XAttribute, string>(Extensions.Attributes(Extensions.Elements <XElement>(xelement2.Elements(xnamespace1 + "Keys"), xnamespace2 + "Key"), (XName)"Id"), (Func <XAttribute, string>)(t => t.Value))), ColumnRef = Enumerable.ToArray <string>(Enumerable.Select <XAttribute, string>(Extensions.Attributes(Extensions.Elements <XElement>(Extensions.Elements <XElement>(Extensions.Elements <XElement>(xelement2.Elements(xnamespace1 + "Keys"), xnamespace2 + "Key"), xnamespace1 + "Key.Columns"), xnamespace2 + "Column"), (XName)"Ref"), (Func <XAttribute, string>)(z => z.Value))) }; table.Columns = Enumerable.ToList <Column>(Enumerable.Select <XElement, Column>(Extensions.Elements <XElement>(xelement2.Elements(xnamespace1 + "Columns"), xnamespace2 + "Column"), (Func <XElement, Column>)(p => new Column() { TableId = table.Id, TableCode = table.Code, Id = Enumerable.FirstOrDefault <string>(Enumerable.Select <XAttribute, string>(p.Attributes((XName)"Id"), (Func <XAttribute, string>)(t => t.Value))), Code = p.Element(xNamespaceAttribute + "Code").Value, Name = p.Element(xNamespaceAttribute + "Name").Value, Displayed = p.Element(xNamespaceAttribute + "Displayed") == null ? string.Empty : p.Element(xNamespaceAttribute + "Displayed").Value, Mandatory = p.Element(xNamespaceAttribute + "Mandatory") == null ? string.Empty : p.Element(xNamespaceAttribute + "Mandatory").Value, Length = p.Element(xNamespaceAttribute + "Length") == null ? string.Empty : p.Element(xNamespaceAttribute + "Length").Value, LowValue = p.Element(xNamespaceAttribute + "LowValue") == null ? string.Empty : p.Element(xNamespaceAttribute + "LowValue").Value, HeighValue = p.Element(xNamespaceAttribute + "HighValue") == null ? string.Empty : p.Element(xNamespaceAttribute + "HighValue").Value, Comment = p.Element(xNamespaceAttribute + "Comment") == null ? string.Empty : p.Element(xNamespaceAttribute + "Comment").Value, DataType = p.Element(xNamespaceAttribute + "DataType") == null ? string.Empty : p.Element(xNamespaceAttribute + "DataType").Value }))); dataSourse.ListTable.Add(table); } foreach (XElement xelement2 in enumerable3) { ViewData view = new ViewData(); view.Id = Enumerable.FirstOrDefault <string>(Enumerable.Select <XAttribute, string>(xelement2.Attributes((XName)"Id"), (Func <XAttribute, string>)(t => t.Value))); view.Name = Enumerable.FirstOrDefault <string>(Enumerable.Select <XElement, string>(xelement2.Elements(xNamespaceAttribute + "Name"), (Func <XElement, string>)(t => t.Value))); view.Code = Enumerable.FirstOrDefault <string>(Enumerable.Select <XElement, string>(xelement2.Elements(xNamespaceAttribute + "Code"), (Func <XElement, string>)(t => t.Value))); view.SQLQuery = Enumerable.FirstOrDefault <string>(Enumerable.Select <XElement, string>(xelement2.Elements(xNamespaceAttribute + "View.SQLQuery"), (Func <XElement, string>)(t => t.Value))); view.Columns = Enumerable.ToList <Column>(Enumerable.Select <XElement, Column>(Extensions.Elements <XElement>(xelement2.Elements(xnamespace1 + "Columns"), xnamespace2 + "ViewColumn"), (Func <XElement, Column>)(p => new Column() { TableCode = view.Code, TableId = view.Id, Id = Enumerable.FirstOrDefault <string>(Enumerable.Select <XAttribute, string>(p.Attributes((XName)"Id"), (Func <XAttribute, string>)(t => t.Value))), Code = p.Element(xNamespaceAttribute + "Code") == null ? string.Empty : p.Element(xNamespaceAttribute + "Code").Value, Name = p.Element(xNamespaceAttribute + "Name") == null ? string.Empty : p.Element(xNamespaceAttribute + "Name").Value, Displayed = p.Element(xNamespaceAttribute + "Displayed") == null ? string.Empty : p.Element(xNamespaceAttribute + "Displayed").Value, Mandatory = p.Element(xNamespaceAttribute + "Mandatory") == null ? string.Empty : p.Element(xNamespaceAttribute + "Mandatory").Value, Length = p.Element(xNamespaceAttribute + "Length") == null ? string.Empty : p.Element(xNamespaceAttribute + "Length").Value, LowValue = p.Element(xNamespaceAttribute + "LowValue") == null ? string.Empty : p.Element(xNamespaceAttribute + "LowValue").Value, HeighValue = p.Element(xNamespaceAttribute + "HighValue") == null ? string.Empty : p.Element(xNamespaceAttribute + "HighValue").Value, Comment = p.Element(xNamespaceAttribute + "Comment") == null ? string.Empty : p.Element(xNamespaceAttribute + "Comment").Value, DataType = p.Element(xNamespaceAttribute + "DataType") == null ? string.Empty : p.Element(xNamespaceAttribute + "DataType").Value }))); dataSourse.ListView.Add(view); } foreach (XElement xelement2 in enumerable1) { Reference reference = new Reference() { ParentTable = Enumerable.FirstOrDefault <string>(Enumerable.Select <XAttribute, string>(xelement2.Element(xnamespace1 + "ParentTable").Element(xnamespace2 + "Table").Attributes((XName)"Ref"), (Func <XAttribute, string>)(t => t.Value))), ChildTable = Enumerable.FirstOrDefault <string>(Enumerable.Select <XAttribute, string>(xelement2.Element(xnamespace1 + "ChildTable").Element(xnamespace2 + "Table").Attributes((XName)"Ref"), (Func <XAttribute, string>)(t => t.Value))), ParentTableColumnRef = Enumerable.FirstOrDefault <string>(Enumerable.Select <XAttribute, string>(xelement2.Element(xnamespace1 + "Joins").Element(xnamespace2 + "ReferenceJoin").Element(xnamespace1 + "Object1").Element(xnamespace2 + "Column").Attributes((XName)"Ref"), (Func <XAttribute, string>)(t => t.Value))), ChildTableColumnRef = Enumerable.FirstOrDefault <string>(Enumerable.Select <XAttribute, string>(xelement2.Element(xnamespace1 + "Joins").Element(xnamespace2 + "ReferenceJoin").Element(xnamespace1 + "Object2").Element(xnamespace2 + "Column").Attributes((XName)"Ref"), (Func <XAttribute, string>)(t => t.Value))), Id = Enumerable.FirstOrDefault <string>(Enumerable.Select <XAttribute, string>(xelement2.Attributes((XName)"Id"), (Func <XAttribute, string>)(t => t.Value))) }; dataSourse.ListReference.Add(reference); } dataSourse.DataBaseInfor = new DBMS() { Id = Enumerable.FirstOrDefault <string>(Enumerable.Select <XAttribute, string>(Extensions.Attributes(source, (XName)"Id"), (Func <XAttribute, string>)(t => t.Value))), Name = Enumerable.FirstOrDefault <string>(Enumerable.Select <XElement, string>(Extensions.Elements <XElement>(source, xNamespaceAttribute + "Name"), (Func <XElement, string>)(t => t.Value))), Code = Enumerable.FirstOrDefault <string>(Enumerable.Select <XElement, string>(Extensions.Elements <XElement>(source, xNamespaceAttribute + "Code"), (Func <XElement, string>)(t => t.Value))), CreationDate = Enumerable.FirstOrDefault <string>(Enumerable.Select <XElement, string>(Extensions.Elements <XElement>(source, xNamespaceAttribute + "CreationDate"), (Func <XElement, string>)(t => t.Value))), Creator = Enumerable.FirstOrDefault <string>(Enumerable.Select <XElement, string>(Extensions.Elements <XElement>(source, xNamespaceAttribute + "Creator"), (Func <XElement, string>)(t => t.Value))), ModificationDate = Enumerable.FirstOrDefault <string>(Enumerable.Select <XElement, string>(Extensions.Elements <XElement>(source, xNamespaceAttribute + "ModificationDate"), (Func <XElement, string>)(t => t.Value))), Modifier = Enumerable.FirstOrDefault <string>(Enumerable.Select <XElement, string>(Extensions.Elements <XElement>(source, xNamespaceAttribute + "Modifier"), (Func <XElement, string>)(t => t.Value))) }; }
public DataSourse GetData(string constr) { DataSourse dataSourse = new DataSourse(); string dbName = constr.Substring(0, constr.IndexOf(";")).Substring(constr.IndexOf("=") + 1); IDbObject dbObject = (IDbObject) new DataAccess(); dbObject.DbConnectStr = constr; List<string> tables = dbObject.GetTables(dbName); List<TableData> list1 = new List<TableData>(); List<Reference> list2 = new List<Reference>(); if (tables != null && tables.Count > 0) { foreach (string tableName in tables) { TableData tableData = new TableData(); tableData.Code = tableName; tableData.Name = tableName; tableData.Id = tableName; List<string> list3 = new List<string>(); DataTable columnInfoList = dbObject.GetColumnInfoList(dbName, tableName); List<Column> list4 = new List<Column>(); foreach (DataRow row in (InternalDataCollectionBase) columnInfoList.Rows) { Column column1 = new Column(); column1.Code = DataRowExtensions.Field<string>(row, 1).Trim(); column1.Comment = DataRowExtensions.Field<string>(row, 15).Trim(); column1.DataType = DataRowExtensions.Field<string>(row, 2).Trim(); column1.Displayed = "true"; Column column2 = column1; string str1 = tableName; int num = DataRowExtensions.Field<int>(row, 0); string str2 = num.ToString(); string str3 = str1 + str2; column2.Id = str3; Column column3 = column1; num = DataRowExtensions.Field<int>(row, 3); string str4 = num.ToString(); column3.Length = str4; column1.Mandatory = DataRowExtensions.Field<string>(row, 13).Trim() == "√" ? "" : "1"; column1.Name = DataRowExtensions.Field<string>(row, 1).Trim(); column1.TableCode = tableName; column1.TableId = tableData.Id; if (DataRowExtensions.Field<string>(row, 7).Trim() != "d") list3.Add(column1.Id); list4.Add(column1); } tableData.Columns = list4; if (list3.Count > 0) tableData.PrimaryKey = new Key() { KeyId = Guid.NewGuid().ToString(), ColumnRef = list3.ToArray() }; list1.Add(tableData); } } if (list1 != null && list1.Count > 0) { foreach (TableData tableData in list1) { TableData tab = tableData; foreach (DataRow dataRow in (InternalDataCollectionBase) dbObject.GetTableRefrence(dbName, tab.Code).Rows) { DataRow item = dataRow; Reference r = new Reference(); r.ParentTable = Enumerable.SingleOrDefault<string>(Enumerable.Select<TableData, string>(Enumerable.Where<TableData>((IEnumerable<TableData>) list1, (Func<TableData, bool>) (t => t.Code == DataRowExtensions.Field<string>(item, 1).Trim())), (Func<TableData, string>) (t => t.Id))); r.ParentTableColumnRef = Enumerable.SingleOrDefault<string>(Enumerable.Select(Enumerable.Where(Enumerable.Where(Enumerable.SelectMany((IEnumerable<TableData>) list1, (Func<TableData, IEnumerable<Column>>) (t => (IEnumerable<Column>) t.Columns), (t, f) => { var fAnonymousType2 = new { t = t, f = f }; return fAnonymousType2; }), param0 => param0.t.Id == r.ParentTable), param0 => param0.f.Code == DataRowExtensions.Field<string>(item, 2).Trim()), param0 => param0.f.Id)); r.Id = Guid.NewGuid().ToString(); r.ChildTable = tab.Id; r.ChildTableColumnRef = Enumerable.SingleOrDefault<string>(Enumerable.Select(Enumerable.Where(Enumerable.Where(Enumerable.SelectMany((IEnumerable<TableData>) list1, (Func<TableData, IEnumerable<Column>>) (t => (IEnumerable<Column>) t.Columns), (t, f) => { var fAnonymousType2 = new { t = t, f = f }; return fAnonymousType2; }), param0 => param0.t.Id == tab.Id), param0 => param0.f.Code == DataRowExtensions.Field<string>(item, 0).Trim()), param0 => param0.f.Id)); list2.Add(r); } } } dataSourse.ListTable = list1; dataSourse.ListReference = list2; DataTable vieWs = dbObject.GetVIEWs(dbName); List<ViewData> list5 = new List<ViewData>(); if (vieWs != null && vieWs.Rows != null && vieWs.Rows.Count > 0) { foreach (DataRow row in (InternalDataCollectionBase) vieWs.Rows) { string str = DataRowExtensions.Field<string>(row, 0); if (!string.IsNullOrWhiteSpace(str)) { string objectViewInfo = dbObject.GetObjectViewInfo(dbName, str); DataTable dataTable = dbObject.QueryViewInfo(dbName, str); ViewData viewData = new ViewData(); viewData.Code = str; viewData.Name = str; viewData.Id = str; viewData.SQLQuery = objectViewInfo; List<Column> list3 = new List<Column>(); foreach (DataColumn dataColumn in (InternalDataCollectionBase) dataTable.Columns) list3.Add(new Column() { Name = dataColumn.ColumnName, Code = dataColumn.ColumnName, Id = Guid.NewGuid().ToString() }); viewData.Columns = list3; list5.Add(viewData); } } } dataSourse.ListView = list5; return dataSourse; }
public static void TableReference(string pdm, ref DataSourse dataSourse) { XElement xelement1; try { if (File.Exists(pdm)) { xelement1 = XElement.Load(pdm); } else { dataSourse.m_ErrorMessage = "不存在" + pdm + " 文件,请在“连接数据源”->“PowerDesigner”中设置"; return; } } catch { dataSourse.m_ErrorMessage = "请先关闭 " + pdm + " 文件,然后再试"; return; } dataSourse.ListTable = new List<TableData>(); dataSourse.ListReference = new List<Reference>(); dataSourse.ListView = new List<ViewData>(); XNamespace xNamespaceAttribute = (XNamespace) "attribute"; XNamespace xnamespace1 = (XNamespace) "collection"; XNamespace xnamespace2 = (XNamespace) "object"; IEnumerable<XElement> enumerable1 = Enumerable.Select<XElement, XElement>(Extensions.Elements<XElement>(Extensions.Elements<XElement>(Extensions.Elements<XElement>(Extensions.Elements<XElement>(xelement1.Elements())), xnamespace1 + "References"), xnamespace2 + "Reference"), (Func<XElement, XElement>) (r => r)); IEnumerable<XElement> enumerable2 = Enumerable.Select<XElement, XElement>(Extensions.Elements<XElement>(Extensions.Elements<XElement>(Extensions.Elements<XElement>(Extensions.Elements<XElement>(xelement1.Elements())), xnamespace1 + "Tables"), xnamespace2 + "Table"), (Func<XElement, XElement>) (x => x)); IEnumerable<XElement> enumerable3 = Enumerable.Select<XElement, XElement>(Extensions.Elements<XElement>(Extensions.Elements<XElement>(Extensions.Elements<XElement>(Extensions.Elements<XElement>(xelement1.Elements())), xnamespace1 + "Views"), xnamespace2 + "View"), (Func<XElement, XElement>) (r => r)); IEnumerable<XElement> source = Enumerable.Select<XElement, XElement>(Extensions.Elements<XElement>(Extensions.Elements<XElement>(Extensions.Elements<XElement>(Extensions.Elements<XElement>(xelement1.Elements())), xnamespace1 + "DBMS"), xnamespace2 + "Shortcut"), (Func<XElement, XElement>) (r => r)); foreach (XElement xelement2 in enumerable2) { TableData table = new TableData(); table.Id = Enumerable.FirstOrDefault<string>(Enumerable.Select<XAttribute, string>(xelement2.Attributes((XName) "Id"), (Func<XAttribute, string>) (t => t.Value))); table.Name = Enumerable.FirstOrDefault<string>(Enumerable.Select<XElement, string>(xelement2.Elements(xNamespaceAttribute + "Name"), (Func<XElement, string>) (t => t.Value))); table.Code = Enumerable.FirstOrDefault<string>(Enumerable.Select<XElement, string>(xelement2.Elements(xNamespaceAttribute + "Code"), (Func<XElement, string>) (t => t.Value))); table.PrimaryKey = new Key() { KeyId = Enumerable.FirstOrDefault<string>(Enumerable.Select<XAttribute, string>(Extensions.Attributes(Extensions.Elements<XElement>(xelement2.Elements(xnamespace1 + "Keys"), xnamespace2 + "Key"), (XName) "Id"), (Func<XAttribute, string>) (t => t.Value))), ColumnRef = Enumerable.ToArray<string>(Enumerable.Select<XAttribute, string>(Extensions.Attributes(Extensions.Elements<XElement>(Extensions.Elements<XElement>(Extensions.Elements<XElement>(xelement2.Elements(xnamespace1 + "Keys"), xnamespace2 + "Key"), xnamespace1 + "Key.Columns"), xnamespace2 + "Column"), (XName) "Ref"), (Func<XAttribute, string>) (z => z.Value))) }; table.Columns = Enumerable.ToList<Column>(Enumerable.Select<XElement, Column>(Extensions.Elements<XElement>(xelement2.Elements(xnamespace1 + "Columns"), xnamespace2 + "Column"), (Func<XElement, Column>) (p => new Column() { TableId = table.Id, TableCode = table.Code, Id = Enumerable.FirstOrDefault<string>(Enumerable.Select<XAttribute, string>(p.Attributes((XName) "Id"), (Func<XAttribute, string>) (t => t.Value))), Code = p.Element(xNamespaceAttribute + "Code").Value, Name = p.Element(xNamespaceAttribute + "Name").Value, Displayed = p.Element(xNamespaceAttribute + "Displayed") == null ? string.Empty : p.Element(xNamespaceAttribute + "Displayed").Value, Mandatory = p.Element(xNamespaceAttribute + "Mandatory") == null ? string.Empty : p.Element(xNamespaceAttribute + "Mandatory").Value, Length = p.Element(xNamespaceAttribute + "Length") == null ? string.Empty : p.Element(xNamespaceAttribute + "Length").Value, LowValue = p.Element(xNamespaceAttribute + "LowValue") == null ? string.Empty : p.Element(xNamespaceAttribute + "LowValue").Value, HeighValue = p.Element(xNamespaceAttribute + "HighValue") == null ? string.Empty : p.Element(xNamespaceAttribute + "HighValue").Value, Comment = p.Element(xNamespaceAttribute + "Comment") == null ? string.Empty : p.Element(xNamespaceAttribute + "Comment").Value, DataType = p.Element(xNamespaceAttribute + "DataType") == null ? string.Empty : p.Element(xNamespaceAttribute + "DataType").Value }))); dataSourse.ListTable.Add(table); } foreach (XElement xelement2 in enumerable3) { ViewData view = new ViewData(); view.Id = Enumerable.FirstOrDefault<string>(Enumerable.Select<XAttribute, string>(xelement2.Attributes((XName) "Id"), (Func<XAttribute, string>) (t => t.Value))); view.Name = Enumerable.FirstOrDefault<string>(Enumerable.Select<XElement, string>(xelement2.Elements(xNamespaceAttribute + "Name"), (Func<XElement, string>) (t => t.Value))); view.Code = Enumerable.FirstOrDefault<string>(Enumerable.Select<XElement, string>(xelement2.Elements(xNamespaceAttribute + "Code"), (Func<XElement, string>) (t => t.Value))); view.SQLQuery = Enumerable.FirstOrDefault<string>(Enumerable.Select<XElement, string>(xelement2.Elements(xNamespaceAttribute + "View.SQLQuery"), (Func<XElement, string>) (t => t.Value))); view.Columns = Enumerable.ToList<Column>(Enumerable.Select<XElement, Column>(Extensions.Elements<XElement>(xelement2.Elements(xnamespace1 + "Columns"), xnamespace2 + "ViewColumn"), (Func<XElement, Column>) (p => new Column() { TableCode = view.Code, TableId = view.Id, Id = Enumerable.FirstOrDefault<string>(Enumerable.Select<XAttribute, string>(p.Attributes((XName) "Id"), (Func<XAttribute, string>) (t => t.Value))), Code = p.Element(xNamespaceAttribute + "Code") == null ? string.Empty : p.Element(xNamespaceAttribute + "Code").Value, Name = p.Element(xNamespaceAttribute + "Name") == null ? string.Empty : p.Element(xNamespaceAttribute + "Name").Value, Displayed = p.Element(xNamespaceAttribute + "Displayed") == null ? string.Empty : p.Element(xNamespaceAttribute + "Displayed").Value, Mandatory = p.Element(xNamespaceAttribute + "Mandatory") == null ? string.Empty : p.Element(xNamespaceAttribute + "Mandatory").Value, Length = p.Element(xNamespaceAttribute + "Length") == null ? string.Empty : p.Element(xNamespaceAttribute + "Length").Value, LowValue = p.Element(xNamespaceAttribute + "LowValue") == null ? string.Empty : p.Element(xNamespaceAttribute + "LowValue").Value, HeighValue = p.Element(xNamespaceAttribute + "HighValue") == null ? string.Empty : p.Element(xNamespaceAttribute + "HighValue").Value, Comment = p.Element(xNamespaceAttribute + "Comment") == null ? string.Empty : p.Element(xNamespaceAttribute + "Comment").Value, DataType = p.Element(xNamespaceAttribute + "DataType") == null ? string.Empty : p.Element(xNamespaceAttribute + "DataType").Value }))); dataSourse.ListView.Add(view); } foreach (XElement xelement2 in enumerable1) { Reference reference = new Reference() { ParentTable = Enumerable.FirstOrDefault<string>(Enumerable.Select<XAttribute, string>(xelement2.Element(xnamespace1 + "ParentTable").Element(xnamespace2 + "Table").Attributes((XName) "Ref"), (Func<XAttribute, string>) (t => t.Value))), ChildTable = Enumerable.FirstOrDefault<string>(Enumerable.Select<XAttribute, string>(xelement2.Element(xnamespace1 + "ChildTable").Element(xnamespace2 + "Table").Attributes((XName) "Ref"), (Func<XAttribute, string>) (t => t.Value))), ParentTableColumnRef = Enumerable.FirstOrDefault<string>(Enumerable.Select<XAttribute, string>(xelement2.Element(xnamespace1 + "Joins").Element(xnamespace2 + "ReferenceJoin").Element(xnamespace1 + "Object1").Element(xnamespace2 + "Column").Attributes((XName) "Ref"), (Func<XAttribute, string>) (t => t.Value))), ChildTableColumnRef = Enumerable.FirstOrDefault<string>(Enumerable.Select<XAttribute, string>(xelement2.Element(xnamespace1 + "Joins").Element(xnamespace2 + "ReferenceJoin").Element(xnamespace1 + "Object2").Element(xnamespace2 + "Column").Attributes((XName) "Ref"), (Func<XAttribute, string>) (t => t.Value))), Id = Enumerable.FirstOrDefault<string>(Enumerable.Select<XAttribute, string>(xelement2.Attributes((XName) "Id"), (Func<XAttribute, string>) (t => t.Value))) }; dataSourse.ListReference.Add(reference); } dataSourse.DataBaseInfor = new DBMS() { Id = Enumerable.FirstOrDefault<string>(Enumerable.Select<XAttribute, string>(Extensions.Attributes(source, (XName) "Id"), (Func<XAttribute, string>) (t => t.Value))), Name = Enumerable.FirstOrDefault<string>(Enumerable.Select<XElement, string>(Extensions.Elements<XElement>(source, xNamespaceAttribute + "Name"), (Func<XElement, string>) (t => t.Value))), Code = Enumerable.FirstOrDefault<string>(Enumerable.Select<XElement, string>(Extensions.Elements<XElement>(source, xNamespaceAttribute + "Code"), (Func<XElement, string>) (t => t.Value))), CreationDate = Enumerable.FirstOrDefault<string>(Enumerable.Select<XElement, string>(Extensions.Elements<XElement>(source, xNamespaceAttribute + "CreationDate"), (Func<XElement, string>) (t => t.Value))), Creator = Enumerable.FirstOrDefault<string>(Enumerable.Select<XElement, string>(Extensions.Elements<XElement>(source, xNamespaceAttribute + "Creator"), (Func<XElement, string>) (t => t.Value))), ModificationDate = Enumerable.FirstOrDefault<string>(Enumerable.Select<XElement, string>(Extensions.Elements<XElement>(source, xNamespaceAttribute + "ModificationDate"), (Func<XElement, string>) (t => t.Value))), Modifier = Enumerable.FirstOrDefault<string>(Enumerable.Select<XElement, string>(Extensions.Elements<XElement>(source, xNamespaceAttribute + "Modifier"), (Func<XElement, string>) (t => t.Value))) }; }
private void LoadServer() { this.treeView1.Nodes.Clear(); TreeNode node1 = new TreeNode(BaseBusiness.GetResourceValue("shujuku")); node1.Tag = (object)"serverlist"; node1.ImageIndex = 2; node1.SelectedImageIndex = 2; node1.Checked = true; this.treeView1.Nodes.Add(node1); TreeNode node2 = new TreeNode(BaseBusiness.GetResourceValue("biao")); node2.Tag = (object)"serverlist"; node2.ImageIndex = 3; node2.SelectedImageIndex = 4; node2.Checked = true; node1.Nodes.Add(node2); TreeNode node3 = new TreeNode(BaseBusiness.GetResourceValue("shitu")); node3.Tag = (object)"serverlist"; node3.ImageIndex = 3; node3.SelectedImageIndex = 4; node3.Checked = true; node1.Nodes.Add(node3); node1.ExpandAll(); try { IData dataSource = new DataFactory().CreateDataSource(this.m_FrmStart.MyDataType); if (dataSource == null) { return; } DataSourse data = dataSource.GetData(this.m_FrmStart.GetPdmConn()); if (!string.IsNullOrWhiteSpace(data.m_ErrorMessage)) { int num = (int)this.m_FrmStart.MessageBoxShow(data.m_ErrorMessage, MessageBoxIcon.Asterisk, MessageBoxButtons.OK); } else { List <Table> list1 = Common.ConvertT(data.ListTable); List <View> list2 = Common.ConvertT(data.ListView); if (list1 != null) { foreach (Table table1 in list1) { Table table = table1; if (!Enumerable.Any <string>((IEnumerable <string>) this.WorkflowTableAndSys, (Func <string, bool>)(a => a.ToLower() == table.Code.ToLower()))) { node2.Nodes.Add(new TreeNode(table.Name) { ImageIndex = 5, SelectedImageIndex = 5, Tag = (object)table.Id, Checked = true }); } } } if (list2 != null) { foreach (View view1 in list2) { View view = view1; if (!Enumerable.Any <string>((IEnumerable <string>) this.WorkflowView, (Func <string, bool>)(a => a.ToLower() == view.Code.ToLower()))) { node3.Nodes.Add(new TreeNode(view.Name) { ImageIndex = 6, SelectedImageIndex = 6, Tag = (object)view.Id, Checked = true }); } } } } } catch (Exception ex) { try { using (VersionClient versionClient = new VersionClient()) { versionClient.WriteExceptions(new SysException() { ComputerInfo = Common.GetID(), Message = ex.Message, StackTrace = ex.StackTrace }); versionClient.Close(); int num = (int)this.m_FrmStart.MessageBoxShow(ex.Message, MessageBoxIcon.Hand, MessageBoxButtons.OK); } } catch { } } }
public DataSourse GetData(string constr) { DataSourse dataSourse = new DataSourse(); string dbName = constr.Substring(0, constr.IndexOf(";")).Substring(constr.IndexOf("=") + 1); IDbObject dbObject = (IDbObject) new DataAccess(); dbObject.DbConnectStr = constr; List <string> tables = dbObject.GetTables(dbName); List <TableData> list1 = new List <TableData>(); List <Reference> list2 = new List <Reference>(); if (tables != null && tables.Count > 0) { foreach (string tableName in tables) { TableData tableData = new TableData(); tableData.Code = tableName; tableData.Name = tableName; tableData.Id = tableName; List <string> list3 = new List <string>(); DataTable columnInfoList = dbObject.GetColumnInfoList(dbName, tableName); List <Column> list4 = new List <Column>(); foreach (DataRow row in (InternalDataCollectionBase)columnInfoList.Rows) { Column column1 = new Column(); column1.Code = DataRowExtensions.Field <string>(row, 1).Trim(); column1.Comment = DataRowExtensions.Field <string>(row, 15).Trim(); column1.DataType = DataRowExtensions.Field <string>(row, 2).Trim(); column1.Displayed = "true"; Column column2 = column1; string str1 = tableName; int num = DataRowExtensions.Field <int>(row, 0); string str2 = num.ToString(); string str3 = str1 + str2; column2.Id = str3; Column column3 = column1; num = DataRowExtensions.Field <int>(row, 3); string str4 = num.ToString(); column3.Length = str4; column1.Mandatory = DataRowExtensions.Field <string>(row, 13).Trim() == "√" ? "" : "1"; column1.Name = DataRowExtensions.Field <string>(row, 1).Trim(); column1.TableCode = tableName; column1.TableId = tableData.Id; if (DataRowExtensions.Field <string>(row, 7).Trim() != "d") { list3.Add(column1.Id); } list4.Add(column1); } tableData.Columns = list4; if (list3.Count > 0) { tableData.PrimaryKey = new Key() { KeyId = Guid.NewGuid().ToString(), ColumnRef = list3.ToArray() } } ; list1.Add(tableData); } } if (list1 != null && list1.Count > 0) { foreach (TableData tableData in list1) { TableData tab = tableData; foreach (DataRow dataRow in (InternalDataCollectionBase)dbObject.GetTableRefrence(dbName, tab.Code).Rows) { DataRow item = dataRow; Reference r = new Reference(); r.ParentTable = Enumerable.SingleOrDefault <string>(Enumerable.Select <TableData, string>(Enumerable.Where <TableData>((IEnumerable <TableData>)list1, (Func <TableData, bool>)(t => t.Code == DataRowExtensions.Field <string>(item, 1).Trim())), (Func <TableData, string>)(t => t.Id))); r.ParentTableColumnRef = Enumerable.SingleOrDefault <string>(Enumerable.Select(Enumerable.Where(Enumerable.Where(Enumerable.SelectMany((IEnumerable <TableData>)list1, (Func <TableData, IEnumerable <Column> >)(t => (IEnumerable <Column>)t.Columns), (t, f) => { var fAnonymousType2 = new { t = t, f = f }; return(fAnonymousType2); }), param0 => param0.t.Id == r.ParentTable), param0 => param0.f.Code == DataRowExtensions.Field <string>(item, 2).Trim()), param0 => param0.f.Id)); r.Id = Guid.NewGuid().ToString(); r.ChildTable = tab.Id; r.ChildTableColumnRef = Enumerable.SingleOrDefault <string>(Enumerable.Select(Enumerable.Where(Enumerable.Where(Enumerable.SelectMany((IEnumerable <TableData>)list1, (Func <TableData, IEnumerable <Column> >)(t => (IEnumerable <Column>)t.Columns), (t, f) => { var fAnonymousType2 = new { t = t, f = f }; return(fAnonymousType2); }), param0 => param0.t.Id == tab.Id), param0 => param0.f.Code == DataRowExtensions.Field <string>(item, 0).Trim()), param0 => param0.f.Id)); list2.Add(r); } } } dataSourse.ListTable = list1; dataSourse.ListReference = list2; DataTable vieWs = dbObject.GetVIEWs(dbName); List <ViewData> list5 = new List <ViewData>(); if (vieWs != null && vieWs.Rows != null && vieWs.Rows.Count > 0) { foreach (DataRow row in (InternalDataCollectionBase)vieWs.Rows) { string str = DataRowExtensions.Field <string>(row, 0); if (!string.IsNullOrWhiteSpace(str)) { string objectViewInfo = dbObject.GetObjectViewInfo(dbName, str); DataTable dataTable = dbObject.QueryViewInfo(dbName, str); ViewData viewData = new ViewData(); viewData.Code = str; viewData.Name = str; viewData.Id = str; viewData.SQLQuery = objectViewInfo; List <Column> list3 = new List <Column>(); foreach (DataColumn dataColumn in (InternalDataCollectionBase)dataTable.Columns) { list3.Add(new Column() { Name = dataColumn.ColumnName, Code = dataColumn.ColumnName, Id = Guid.NewGuid().ToString() }); } viewData.Columns = list3; list5.Add(viewData); } } } dataSourse.ListView = list5; return(dataSourse); } }