Пример #1
0
 public DataSourse GetData(string ini)
 {
   DataSourse dataSourse = new DataSourse();
   if (!string.IsNullOrWhiteSpace(ini))
     AnalyticPDM.TableReference(ini, ref dataSourse);
   return dataSourse;
 }
Пример #2
0
        public DataSourse GetData(string ini)
        {
            DataSourse dataSourse = new DataSourse();

            if (!string.IsNullOrWhiteSpace(ini))
            {
                AnalyticPDM.TableReference(ini, ref dataSourse);
            }
            return(dataSourse);
        }
Пример #3
0
        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)))
            };
        }
Пример #4
0
 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;
 }
Пример #5
0
 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)))
   };
 }
Пример #6
0
        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
                {
                }
            }
        }
Пример #7
0
        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);
        }
    }