コード例 #1
0
 private void ViewItem_Expanded(object sender, EventArgs e, DataTreeItem citem)
 {
     if (!citem.ChildSearched)
     {
         SetRelationsDataItem(citem);
     }
 }
コード例 #2
0
        public void SetAreaInitializer(DataTreeAreaInitializer initParam)
        {
            View = AgentUICoreMediator.GetAgentUICoreMediator.UIManager.GetViewOfDataTree();
            View.DataAreaConfirmed += View_DataAreaConfirmed;
            View.ContextMenuLoaded += View_ContextMenuLoaded;
            AreaInitializer         = initParam;
            if (AreaInitializer.FirstDataItem != null)
            {
                DataTreeItem item = ToDataItemNode(null, AreaInitializer.FirstDataItem, true, false);
                foreach (var rItem in AreaInitializer.RelationshipTails)
                {
                    DataTreeItem citem = ToRelationItemNode(item, item.DataItem, rItem, false, !initParam.RelationshipTailsLoaded);
                    item.ChildNodes.Add(citem);

                    if (initParam.RelationshipTailsLoaded)
                    {
                        SetRelationsDataItem(citem);
                    }
                    else
                    {
                        citem.ViewItem.Expanded += (sender, e) => ViewItem_Expanded(sender, e, citem);
                    }
                }
                item.ChildSearched = true;
            }
        }
コード例 #3
0
        public void Select(DP_DataView dataInstance)
        {
            DataTreeItem item = GetDataTreeItem(dataInstance);

            if (item != null)
            {
                item.ViewItem.IsSelected = true;
            }
        }
コード例 #4
0
        //private void ViewMenu_Cliecked(object sender, EventArgs e, DynamicContextMenu menu)
        //{
        //    menu.OnClicked();
        //}
        private DataTreeItem ToRelationItemNode(DataTreeItem parentItem, DP_DataView relatedItem, EntityRelationshipTailDTO relation, bool selectable, bool tempChild)
        {
            DataTreeItem item = new DataTreeItem();

            item.DataItem = relatedItem;
            item.Relation = relation;
            item.ItemType = DataTreeItemType.Relation;
            item.ViewItem = parentItem.ViewItem.AddNode(relation.EntityPath, selectable, tempChild);
            //item.ViewItem.ContextMenuLoaded += (sender, e) => ViewItem_ContextMenuLoaded(sender, e, item);
            DataTreeItems.Add(item);
            return(item);
        }
コード例 #5
0
        private void SetRelationsDataItem(DataTreeItem citem)
        {
            var requester                = AgentUICoreMediator.GetAgentUICoreMediator.GetRequester();
            var searchDataTuple          = AgentUICoreMediator.GetAgentUICoreMediator.RelationshipTailDataManager.GetTargetSearchItemFromRelationshipTail(citem.DataItem, citem.Relation);
            DR_SearchViewRequest request = new DR_SearchViewRequest(requester, searchDataTuple);
            var searchResult             = AgentUICoreMediator.GetAgentUICoreMediator.requestRegistration.SendSearchViewRequest(request);

            citem.ViewItem.ClearChildNodes();
            foreach (var relatedItem in searchResult.ResultDataItems)
            {
                var relatedkeyColumns = relatedItem.KeyProperties;
                citem.ChildNodes.Add(ToDataItemNode(citem, relatedItem, true, AreaInitializer.ExpandableMore));
            }
            citem.ChildSearched = true;
        }
コード例 #6
0
        private DataTreeItem ToDataItemNode(DataTreeItem parentItem, DP_DataView relatedItem, bool selectable, bool tempChild)
        {
            DataTreeItem item = new DataTreeItem();

            item.DataItem = relatedItem;
            item.ItemType = DataTreeItemType.DataItem;
            if (parentItem == null)
            {
                item.ViewItem = View.AddRootNode(item.DataItem.ViewInfo, selectable, tempChild);
            }
            else
            {
                item.ViewItem = parentItem.ViewItem.AddNode(item.DataItem.ViewInfo, selectable, tempChild);
            }

            DataTreeItems.Add(item);
            return(item);
        }
コード例 #7
0
        private static List <DataTreeItem> readBranch(GameObject rootGameObject)
        {
            CheckNodeName(rootGameObject);
            List <DataTreeItem> list = new List <DataTreeItem>();

            for (int i = 0; i < rootGameObject.transform.childCount; ++i)
            {
                GameObject     go  = rootGameObject.transform.GetChild(i).gameObject;
                ReddotEditItem rei = go.GetComponent <ReddotEditItem>();
                DataTreeItem   dti = new DataTreeItem();
                dti.go = go;
                if (!rei.luaScriptName.Equals(""))
                {
                    dti.luaScriptName   = rei.luaScriptName;
                    dti.luaFunctionName = rei.luaFunctionName;
                }
                if (dti.go.transform.childCount > 0)
                {
                    dti.children = readBranch(go);
                }
                else
                {
                    CheckNodeName(dti.go);
                }
                dti.paramList      = rei.paramList;
                dti.shuldPassParam = rei.shuldPassParam;
                list.Add(dti);
                if (dti.shuldPassParam)
                {
                    for (int j = 0; j < dti.paramList.Count; ++j)
                    {
                        if (dti.paramList[j].IndexOf(".") >= 0)
                        {
                            Debug.LogError("参数名不合法: " + dti.go.name);
                        }
                    }
                }
            }
            return(list);
        }
コード例 #8
0
 private static void GenerateCodeToString(ref string str, DataTreeItem dataTreeItem)
 {
     for (int i = 0; i < dataTreeItem.children.Count; ++i)
     {
         GenerateCodeToString(ref str, dataTreeItem.children[i]);
     }
     str = str + "function ReddotManager:" + dataTreeItem.gen_funcname + "(";
     if (dataTreeItem.shuldPassParam)
     {
         for (int i = 0; i < dataTreeItem.paramList.Count; ++i)
         {
             if (i > 0)
             {
                 str = str + ", ";
             }
             str = str + dataTreeItem.paramList[i];
         }
     }
     str = str + ")\n";
     str = str + "   return " + dataTreeItem.gen_funcCode;
     str = str + "end\n\n";
 }
コード例 #9
0
        private void PopulateFunctions(TreeNode parentNode)
        {
            try
            {
                var itemCache = new SortedList<string, DataTreeItem>();

                //Current Items
                foreach (var function in this.CurrentDatabase.FunctionList)
                {
                    var dti = new DataTreeItem(function.Name, function) { SourceItem = function };
                    if (this.NewDatabase.FunctionList.Contains(function.Name))
                        dti.Name = this.NewDatabase.FunctionList.GetItem(function.Name).Name;

                    //Check for deleted status
                    if (!this.NewDatabase.FunctionList.Contains(function.Name))
                        dti.State = nHydrate.DataImport.ImportStateConstants.Deleted;
                    else if (this.NewDatabase.FunctionList.GetItem(function.Name).CorePropertiesHash != function.CorePropertiesHash)
                    {
                        dti.State = nHydrate.DataImport.ImportStateConstants.Modified;
                        dti.TargetItem = this.NewDatabase.FunctionList.GetItem(function.Name);
                    }
                    else if (this.NewDatabase.FunctionList.GetItem(function.Name).FieldList.GetCorePropertiesHash() != function.FieldList.GetCorePropertiesHash())
                    {
                        dti.State = nHydrate.DataImport.ImportStateConstants.Modified;
                        dti.TargetItem = this.NewDatabase.FunctionList.GetItem(function.Name);
                    }

                    if (!itemCache.ContainsKey(function.Name.ToLower()))
                        itemCache.Add(function.Name.ToLower(), dti);
                }

                //Added Items
                foreach (var t in this.NewDatabase.FunctionList)
                {
                    if (!this.CurrentDatabase.FunctionList.Contains(t.Name))
                        itemCache.Add(t.Name.ToLower(), new DataTreeItem(t.Name, nHydrate.DataImport.ImportStateConstants.Added) { TargetItem = t });
                }

                //Now add to tree
                foreach (var functionKey in itemCache.Keys)
                {
                    var newNode = new TreeNode(itemCache[functionKey].Name);
                    newNode.Checked = false;
                    newNode.Tag = itemCache[functionKey];
                    parentNode.Nodes.Add(newNode);

                    var oldFunction = this.CurrentDatabase.FunctionList.GetItem(functionKey);
                    var newFunction = this.NewDatabase.FunctionList.GetItem(functionKey);
                    if (oldFunction == null) oldFunction = new nHydrate.DataImport.Function();
                    if (newFunction == null) newFunction = new nHydrate.DataImport.Function();

                    //Create list of all columns (new and old)
                    var columns = new SortedList<string, DataTreeItem>();
                    foreach (var column in oldFunction.FieldList)
                    {
                        var dti = new DataTreeItem(column.Name);

                        //Check for deleted status
                        if (this.NewDatabase.FunctionList.Contains(itemCache[oldFunction.Name.ToLower()].Name))
                        {
                            var statusColumn = this.NewDatabase.FunctionList.GetItem(itemCache[oldFunction.Name.ToLower()].Name).FieldList.FirstOrDefault(x => x.Name == column.Name);
                            if (statusColumn == null)
                                dti.State = nHydrate.DataImport.ImportStateConstants.Deleted;
                            else if (column.CorePropertiesHash != statusColumn.CorePropertiesHash)
                                dti.State = nHydrate.DataImport.ImportStateConstants.Modified;
                        }

                        columns.Add(column.Name.ToLower(), dti);

                    }

                }

            }
            catch (Exception ex)
            {
                throw;
            }
        }
コード例 #10
0
        private void PopulateDataSchema(TreeNode parentNode)
        {
            try
            {
                var itemCache = new SortedList<string, DataTreeItem>();

                //Current Tables
                foreach (var t in this.CurrentDatabase.EntityList)
                {
                    var dti = new DataTreeItem(t.Name, t) { SourceItem = t };
                    if (this.NewDatabase.EntityList.Count(x => x.Name.ToLower() == t.Name.ToLower()) > 0)
                        dti.Name = this.NewDatabase.EntityList.First(x => x.Name.ToLower() == t.Name.ToLower()).Name;

                    //Check for deleted status
                    if (this.NewDatabase.EntityList.Count(x => x.Name.ToLower() == t.Name.ToLower()) == 0)
                        dti.State = nHydrate.DataImport.ImportStateConstants.Deleted;
                    else if (this.NewDatabase.EntityList.First(x => x.Name.ToLower() == t.Name.ToLower()).CorePropertiesHash != t.CorePropertiesHash)
                    {
                        dti.State = nHydrate.DataImport.ImportStateConstants.Modified;
                        dti.TargetItem = this.NewDatabase.EntityList.First(x => x.Name.ToLower() == t.Name.ToLower());
                    }
                    else if (this.NewDatabase.EntityList.First(x => x.Name.ToLower() == t.Name.ToLower()).FieldList.GetCorePropertiesHash() != t.FieldList.GetCorePropertiesHash())
                    {
                        dti.State = nHydrate.DataImport.ImportStateConstants.Modified;
                        dti.TargetItem = this.NewDatabase.EntityList.First(x => x.Name.ToLower() == t.Name.ToLower());
                    }

                    if (!itemCache.ContainsKey(t.Name.ToLower()))
                        itemCache.Add(t.Name.ToLower(), dti);
                }

                //Added Tables
                foreach (var t in this.NewDatabase.EntityList)
                {
                    if (this.CurrentDatabase.EntityList.Count(x => x.Name.ToLower() == t.Name.ToLower()) == 0)
                        itemCache.Add(t.Name.ToLower(), new DataTreeItem(t.Name, nHydrate.DataImport.ImportStateConstants.Added) { TargetItem = t });
                }

                //Now add to tree
                foreach (var tableKey in itemCache.Keys)
                {
                    var tableNode = new TreeNode(itemCache[tableKey].Name);
                    tableNode.Checked = false;
                    tableNode.ImageIndex = 3;
                    tableNode.Tag = itemCache[tableKey];

                    parentNode.Nodes.Add(tableNode);

                    var oldTable = this.CurrentDatabase.EntityList.FirstOrDefault(x => x.Name.ToLower() == tableKey.ToLower());
                    var newTable = this.NewDatabase.EntityList.FirstOrDefault(x => x.Name.ToLower() == tableKey.ToLower());
                    if (oldTable == null) oldTable = new nHydrate.DataImport.Entity();
                    if (newTable == null) newTable = new nHydrate.DataImport.Entity();

                    //Create list of all columns (new and old)
                    var columns = new SortedList<string, DataTreeItem>();
                    foreach (var column in oldTable.FieldList)
                    {
                        var dti = new DataTreeItem(column.Name);

                        //Check for deleted status
                        if (this.NewDatabase.EntityList.Count(x => x.Name.ToLower() == itemCache[oldTable.Name.ToLower()].Name.ToLower()) > 0)
                        {
                            var statusTable = this.NewDatabase.EntityList.FirstOrDefault(x => x.Name.ToLower() == itemCache[oldTable.Name.ToLower()].Name.ToLower());
                            if (statusTable != null)
                            {
                                var statusColumn = statusTable.FieldList.FirstOrDefault(x => x.Name.ToLower() == column.Name.ToLower());
                                if (statusColumn == null)
                                    dti.State = nHydrate.DataImport.ImportStateConstants.Deleted;
                                else if (column.CorePropertiesHash != statusColumn.CorePropertiesHash)
                                    dti.State = nHydrate.DataImport.ImportStateConstants.Modified;
                            }
                        }

                        columns.Add(column.Name.ToLower(), dti);

                    }

                }

            }
            catch (Exception ex)
            {
                throw;
            }
        }
コード例 #11
0
ファイル: ImportDatabaseForm.cs プロジェクト: eoehen/nHydrate
        private void PopulateViews(TreeNode parentNode)
        {
            try
            {
                var itemCache = new SortedList <string, DataTreeItem>();

                //Current Items
                foreach (var view in this.CurrentDatabase.ViewList)
                {
                    var dti = new DataTreeItem(view.Name, view)
                    {
                        SourceItem = view
                    };
                    if (this.NewDatabase.ViewList.Count(x => x.Name == view.Name) > 0)
                    {
                        dti.Name = this.NewDatabase.ViewList.FirstOrDefault(x => x.Name == view.Name).Name;
                    }

                    //Check for deleted status
                    if (this.NewDatabase.ViewList.Count(x => x.Name == view.Name) == 0)
                    {
                        dti.State = nHydrate.DataImport.ImportStateConstants.Deleted;
                    }
                    else if (this.NewDatabase.ViewList.First(x => x.Name == view.Name).CorePropertiesHash != view.CorePropertiesHash)
                    {
                        dti.State      = nHydrate.DataImport.ImportStateConstants.Modified;
                        dti.TargetItem = this.NewDatabase.ViewList.First(x => x.Name == view.Name);
                    }
                    else if (this.NewDatabase.ViewList.First(x => x.Name == view.Name).FieldList.GetCorePropertiesHash() != view.FieldList.GetCorePropertiesHash())
                    {
                        dti.State      = nHydrate.DataImport.ImportStateConstants.Modified;
                        dti.TargetItem = this.NewDatabase.ViewList.First(x => x.Name == view.Name);
                    }

                    if (!itemCache.ContainsKey(view.Name.ToLower()))
                    {
                        itemCache.Add(view.Name.ToLower(), dti);
                    }
                }

                //Added Items
                foreach (var t in this.NewDatabase.ViewList)
                {
                    if (this.CurrentDatabase.ViewList.Count(x => x.Name == t.Name) == 0)
                    {
                        itemCache.Add(t.Name.ToLower(), new DataTreeItem(t.Name, nHydrate.DataImport.ImportStateConstants.Added)
                        {
                            TargetItem = t
                        });
                    }
                }

                //Now add to tree
                foreach (var viewKey in itemCache.Keys)
                {
                    var viewNode = new TreeNode(itemCache[viewKey].Name);
                    viewNode.Checked    = false;
                    viewNode.ImageIndex = 4;
                    viewNode.Tag        = itemCache[viewKey];

                    parentNode.Nodes.Add(viewNode);

                    var oldView = this.CurrentDatabase.ViewList.FirstOrDefault(x => x.Name == viewKey);
                    var newView = this.NewDatabase.ViewList.FirstOrDefault(x => x.Name == viewKey);
                    if (oldView == null)
                    {
                        oldView = new nHydrate.DataImport.View();
                    }
                    if (newView == null)
                    {
                        newView = new nHydrate.DataImport.View();
                    }

                    //Create list of all columns (new and old)
                    var columns = new SortedList <string, DataTreeItem>();
                    foreach (var column in oldView.FieldList)
                    {
                        var dti = new DataTreeItem(column.Name);

                        //Check for deleted status
                        if (this.NewDatabase.ViewList.Count(x => x.Name == itemCache[oldView.Name.ToLower()].Name) > 0)
                        {
                            var statusColumn = this.NewDatabase.ViewList.First(x => x.Name == itemCache[oldView.Name.ToLower()].Name).FieldList.FirstOrDefault(x => x.Name == column.Name);
                            if (statusColumn == null)
                            {
                                dti.State = nHydrate.DataImport.ImportStateConstants.Deleted;
                            }
                            else if (column.CorePropertiesHash != statusColumn.CorePropertiesHash)
                            {
                                dti.State = nHydrate.DataImport.ImportStateConstants.Modified;
                            }
                        }

                        columns.Add(column.Name.ToLower(), dti);
                    }
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }
コード例 #12
0
		//private void PopulateRelationships(TreeNode parentNode)
		//{
		//  try
		//  {
		//    Random rnd = new Random();
		//    SortedList<string, DataTreeItem> relationList = new SortedList<string, DataTreeItem>();

		//    //Current Tables
		//    foreach (Table t in this.CurrentDatabase.Tables)
		//    {
		//      //Remove invalid links. Something is very wrong
		//      RelationCollection relationCollection = t.GetRelations();
		//      for (int ii = relationCollection.Count - 1; ii >= 0; ii--)
		//      {
		//        Relation relationshipItem = relationCollection[ii];
		//        int errorCount = 0;
		//        foreach (ColumnRelationship relationshipLinkItem in relationshipItem.ColumnRelationships)
		//        {
		//          if ((relationshipLinkItem.ChildColumnRef == null) || (relationshipLinkItem.ParentColumnRef == null))
		//            errorCount++;
		//        }
		//        if (errorCount > 0) t.Relationships.RemoveAt(ii);
		//      }
		//      //Remove Errors

		//      //If the table exists in the new graph...
		//      foreach (Relation relation in relationCollection)
		//      {
		//        Table t2 = this.NewDatabase.Tables[t.Name];
		//        DataTreeItem dti = new DataTreeItem(relation.RoleName);
		//        dti.Name = relation.ToLongString();
		//        if (t2 == null)
		//        {
		//          //The table was removed so the relationship was removed
		//          dti.State = DataTreeItem.DataTreeItemStateConstants.Delete;
		//        }
		//        else
		//        {
		//          //If the name changed then it was modified
		//          Relation[] r2List = t2.GetRelations().GetFromMatch(relation);
		//          if (r2List.Length == 0)
		//          {
		//            dti.State = DataTreeItem.DataTreeItemStateConstants.Delete;
		//          }
		//          else if (r2List.Length == 1)
		//          {
		//            if (r2List[0].RoleName != relation.RoleName)
		//              dti.State = DataTreeItem.DataTreeItemStateConstants.Modified;
		//          }
		//          else if (r2List.Length > 1)
		//          {
		//            //There are multiple relationships for this table/column combination
		//            bool found = false;
		//            foreach (Relation r2 in r2List)
		//            {
		//              #region OLD CODE
		//              //if (r2.RoleName == relation.RoleName) found = true;
		//              //string parentTableName1 = ((Table)r2.ParentTableRef.Object).Name;
		//              //string parentTableName2 = ((Table)relation.ParentTableRef.Object).Name;

		//              //SortedDictionary<string, ColumnRelationship> list1 = new SortedDictionary<string,ColumnRelationship>();
		//              //foreach (ColumnRelationship cr in r2.ColumnRelationships)
		//              //{
		//              //  list1.Add(((Column)cr.ChildColumnRef.Object).Name, cr);
		//              //}

		//              //SortedDictionary<string, ColumnRelationship> list2 = new SortedDictionary<string, ColumnRelationship>();
		//              //foreach (ColumnRelationship cr in relation.ColumnRelationships)
		//              //{
		//              //  list2.Add(((Column)cr.ChildColumnRef.Object).Name, cr);
		//              //}

		//              //string parentColName1 = string.Empty;
		//              //foreach (string key in list1.Keys)
		//              //{
		//              //  parentColName1 += key;
		//              //}

		//              //string parentColName2 = string.Empty;
		//              //foreach (string key in list2.Keys)
		//              //{
		//              //  parentColName2 += key;
		//              //}

		//              ////string parentCol
		//              //if ((parentTableName1 == parentTableName2) && (parentColName1 == parentColName2))
		//              //  found = true;
		//              #endregion

		//              if (r2.Equals(relation)) found = true;

		//            }
		//            if (!found)
		//              dti.State = DataTreeItem.DataTreeItemStateConstants.Modified;
		//          }

		//        }

		//        //If there is a duplicate then add a FAKE ROLE to it
		//        if (relationList.ContainsKey(relation.ToLongString().ToLower()))
		//        {
		//          relation.RoleName = "ROLE" + rnd.Next(10000, 100000);
		//          relationList.Add(relation.ToLongString().ToLower(), dti);
		//        }
		//        else
		//        {
		//          relationList.Add(relation.ToLongString().ToLower(), dti);
		//        }

		//      }
		//    }

		//    //Added Relationships
		//    foreach (Table t in this.NewDatabase.Tables)
		//    {
		//      foreach (Reference reference in t.Relationships)
		//      {
		//        Relation r = (Relation)reference.Object;
		//        string relationName = r.ToLongString();
		//        if (this.CurrentDatabase.Tables.Contains(t.Name))
		//        {
		//          //If the old model has this table
		//          Table t2 = this.CurrentDatabase.Tables[t.Name];
		//          if ((t2 != null) && (t2.GetRelations().GetFromMatch(r).Length == 0))
		//            relationList.Add(relationName.ToLower(), new DataTreeItem(relationName, DataTreeItem.DataTreeItemStateConstants.Added));
		//        }
		//        else
		//        {
		//          //Table and Relation not in old model
		//          if (!relationList.ContainsKey(relationName.ToLower()))
		//          {
		//            relationList.Add(relationName.ToLower(), new DataTreeItem(relationName, DataTreeItem.DataTreeItemStateConstants.Added));
		//          }
		//          else
		//          {
		//            int loop = 1;
		//            while (relationList.ContainsKey((relationName + "_RELATION" + loop).ToLower()))
		//            {
		//              loop++;
		//            }
		//            relationName += "_RELATION" + loop;
		//            relationList.Add(relationName.ToLower(), new DataTreeItem(relationName, DataTreeItem.DataTreeItemStateConstants.Added));
		//          }
		//        }
		//      }
		//    }

		//    //Now add to tree
		//    foreach (string relationKey in relationList.Keys)
		//    {
		//      var relationNode = new TreeNode(relationList[relationKey].Name);
		//      relationNode.Tag = relationList[relationKey];
		//      if (relationList[relationKey].State == DataTreeItem.DataTreeItemStateConstants.Added)
		//        relationNode.ForeColor = Color.Green;
		//      if (relationList[relationKey].State == DataTreeItem.DataTreeItemStateConstants.Delete)
		//        relationNode.ForeColor = Color.Red;
		//      if (relationList[relationKey].State == DataTreeItem.DataTreeItemStateConstants.Modified)
		//        relationNode.ForeColor = Color.Blue;

		//      parentNode.Nodes.Add(relationNode);
		//    }

		//    this.BrandNodes(parentNode.Nodes);

		//  }
		//  catch (Exception ex)
		//  {
		//    throw;
		//  }
		//}
		#endregion

		#region PopulateStoredProcedures
		//private void PopulateStoredProcedures(TreeNode parentNode)
		//{
		//  try
		//  {
		//    SortedList<string, DataTreeItem> itemCache = new SortedList<string, DataTreeItem>();

		//    //Current Items
		//    foreach (CustomStoredProcedure storedProcedure in this.CurrentDatabase.CustomStoredProcedures)
		//    {
		//      DataTreeItem dti = new DataTreeItem(storedProcedure.Name);
		//      if (this.NewDatabase.CustomStoredProcedures.Contains(storedProcedure.Name))
		//        dti.Name = this.NewDatabase.CustomStoredProcedures[storedProcedure.Name].Name;

		//      //Check for deleted status
		//      if (!this.NewDatabase.CustomStoredProcedures.Contains(storedProcedure.Name))
		//        dti.State = DataTreeItem.DataTreeItemStateConstants.Delete;
		//      else if (this.NewDatabase.CustomStoredProcedures[storedProcedure.Name].Name != storedProcedure.Name)
		//        dti.State = DataTreeItem.DataTreeItemStateConstants.Modified;
		//      else if (this.NewDatabase.CustomStoredProcedures[storedProcedure.Name].GetColumns().GetCorePropertiesHash() != storedProcedure.GetColumns().GetCorePropertiesHash())
		//        dti.State = DataTreeItem.DataTreeItemStateConstants.Modified;

		//      itemCache.Add(storedProcedure.Name.ToLower(), dti);
		//    }

		//    //Added Items
		//    foreach (CustomStoredProcedure t in this.NewDatabase.CustomStoredProcedures)
		//    {
		//      if (!this.CurrentDatabase.CustomStoredProcedures.Contains(t.Name))
		//        itemCache.Add(t.Name.ToLower(), new DataTreeItem(t.Name, DataTreeItem.DataTreeItemStateConstants.Added));
		//    }

		//    //Now add to tree
		//    foreach (string storedProcedureKey in itemCache.Keys)
		//    {
		//      var newNode = new TreeNode(itemCache[storedProcedureKey].Name);
		//      newNode.Tag = itemCache[storedProcedureKey];
		//      if (itemCache[storedProcedureKey].State == DataTreeItem.DataTreeItemStateConstants.Added)
		//        newNode.ForeColor = Color.Green;
		//      if (itemCache[storedProcedureKey].State == DataTreeItem.DataTreeItemStateConstants.Delete)
		//        newNode.ForeColor = Color.Red;
		//      if (itemCache[storedProcedureKey].State == DataTreeItem.DataTreeItemStateConstants.Modified)
		//        newNode.ForeColor = Color.Blue;

		//      parentNode.Nodes.Add(newNode);

		//      CustomStoredProcedure oldStoredProcedure = this.CurrentDatabase.CustomStoredProcedures[storedProcedureKey];
		//      CustomStoredProcedure newStoredProcedure = this.NewDatabase.CustomStoredProcedures[storedProcedureKey];
		//      if (oldStoredProcedure == null) oldStoredProcedure = new CustomStoredProcedure(this.CurrentDatabase.Root);
		//      if (newStoredProcedure == null) newStoredProcedure = new CustomStoredProcedure(this.NewDatabase.Root);

		//      //Create list of all columns (new and old)
		//      SortedList<string, DataTreeItem> columns = new SortedList<string, DataTreeItem>();
		//      foreach (Reference r in oldStoredProcedure.Columns)
		//      {
		//        CustomStoredProcedureColumn column = (CustomStoredProcedureColumn)r.Object;
		//        DataTreeItem dti = new DataTreeItem(column.Name);

		//        //Check for deleted status
		//        if (this.NewDatabase.CustomStoredProcedures.Contains(itemCache[oldStoredProcedure.Name.ToLower()].Name))
		//        {
		//          CustomStoredProcedureColumn statusColumn = this.NewDatabase.CustomStoredProcedures[itemCache[oldStoredProcedure.Name.ToLower()].Name].GetColumns().FirstOrDefault(x => x.Name == column.Name);
		//          if (statusColumn == null)
		//            dti.State = DataTreeItem.DataTreeItemStateConstants.Delete;
		//          else if (column.CorePropertiesHash != statusColumn.CorePropertiesHash)
		//            dti.State = DataTreeItem.DataTreeItemStateConstants.Modified;
		//        }

		//        columns.Add(column.Name.ToLower(), dti);

		//      }

		//      //Added Columns
		//      if (oldStoredProcedure.Name == string.Empty)
		//      {
		//        foreach (CustomStoredProcedureColumn column in this.NewDatabase.CustomStoredProcedures[storedProcedureKey].GetColumns())
		//        {
		//          columns.Add(column.Name.ToLower(), new DataTreeItem(column.Name, DataTreeItem.DataTreeItemStateConstants.Added));
		//        }
		//      }
		//      else
		//      {
		//        if (this.NewDatabase.CustomStoredProcedures.Contains(itemCache[oldStoredProcedure.Name.ToLower()].Name))
		//        {
		//          foreach (CustomStoredProcedureColumn column in this.NewDatabase.CustomStoredProcedures[itemCache[oldStoredProcedure.Name.ToLower()].Name].GetColumns())
		//          {
		//            CustomStoredProcedureColumn statusColumn = this.CurrentDatabase.CustomStoredProcedures[itemCache[oldStoredProcedure.Name.ToLower()].Name].GetColumns().FirstOrDefault(x => x.Name == column.Name);
		//            if (statusColumn == null)
		//              columns.Add(column.Name.ToLower(), new DataTreeItem(column.Name, DataTreeItem.DataTreeItemStateConstants.Added));
		//          }
		//        }
		//      }

		//      //Now load columns into tree
		//      if (this.NewDatabase.CustomStoredProcedures.Contains(oldStoredProcedure.Name))
		//      {
		//        foreach (string columnKey in columns.Keys)
		//        {
		//          var columnNode = new TreeNode(columns[columnKey].Name);
		//          if (columns[columnKey].State == DataTreeItem.DataTreeItemStateConstants.Added)
		//            columnNode.ForeColor = Color.Green;
		//          if (columns[columnKey].State == DataTreeItem.DataTreeItemStateConstants.Delete)
		//            columnNode.ForeColor = Color.Red;
		//          if (columns[columnKey].State == DataTreeItem.DataTreeItemStateConstants.Modified)
		//            columnNode.ForeColor = Color.Blue;

		//          columnNode.Tag = columns[columnKey];
		//          newNode.Nodes.Add(columnNode);
		//        }
		//      }

		//    }

		//    this.BrandNodes(parentNode.Nodes);

		//  }
		//  catch (Exception ex)
		//  {
		//    throw;
		//  }
		//}
		#endregion

		private void PopulateViews(TreeNode parentNode)
		{
			try
			{
				var itemCache = new SortedList<string, DataTreeItem>();

				//Current Items
				foreach (CustomView view in this.CurrentDatabase.CustomViews)
				{
					var dti = new DataTreeItem(view.Name);
					if (this.NewDatabase.CustomViews.Contains(view.Name))
						dti.Name = this.NewDatabase.CustomViews[view.Name].Name;

					//Check for deleted status
					if (!this.NewDatabase.CustomViews.Contains(view.Name))
						dti.State = DataTreeItem.DataTreeItemStateConstants.Delete;
					else if (this.NewDatabase.CustomViews[view.Name].Name != view.Name)
						dti.State = DataTreeItem.DataTreeItemStateConstants.Modified;
					else if (this.NewDatabase.CustomViews[view.Name].GetColumns().GetCorePropertiesHash() != view.GetColumns().GetCorePropertiesHash())
						dti.State = DataTreeItem.DataTreeItemStateConstants.Modified;

					itemCache.Add(view.Name.ToLower(), dti);
				}

				//Added Items
				foreach (CustomView t in this.NewDatabase.CustomViews)
				{
					if (!this.CurrentDatabase.CustomViews.Contains(t.Name))
						itemCache.Add(t.Name.ToLower(), new DataTreeItem(t.Name, DataTreeItem.DataTreeItemStateConstants.Added));
				}

				//Now add to tree
				foreach (var viewKey in itemCache.Keys)
				{
					var viewNode = new TreeNode(itemCache[viewKey].Name);
					viewNode.Checked = true;
					viewNode.ImageIndex = 4;
					viewNode.Tag = itemCache[viewKey];
					//if (itemCache[viewKey].State == DataTreeItem.DataTreeItemStateConstants.Added)
					//  viewNode.ForeColor = Color.Green;
					//if (itemCache[viewKey].State == DataTreeItem.DataTreeItemStateConstants.Delete)
					//  viewNode.ForeColor = Color.Red;
					//if (itemCache[viewKey].State == DataTreeItem.DataTreeItemStateConstants.Modified)
					//  viewNode.ForeColor = Color.Blue;

					parentNode.Nodes.Add(viewNode);

					var oldView = this.CurrentDatabase.CustomViews[viewKey];
					var newView = this.NewDatabase.CustomViews[viewKey];
					if (oldView == null) oldView = new CustomView(this.CurrentDatabase.Root);
					if (newView == null) newView = new CustomView(this.NewDatabase.Root);

					//Create list of all columns (new and old)
					var columns = new SortedList<string, DataTreeItem>();
					foreach (Reference r in oldView.Columns)
					{
						var column = (CustomViewColumn)r.Object;
						var dti = new DataTreeItem(column.Name);

						//Check for deleted status
						if (this.NewDatabase.CustomViews.Contains(itemCache[oldView.Name.ToLower()].Name))
						{
							var statusColumn = this.NewDatabase.CustomViews[itemCache[oldView.Name.ToLower()].Name].GetColumns().FirstOrDefault(x => x.Name == column.Name);
							if (statusColumn == null)
								dti.State = DataTreeItem.DataTreeItemStateConstants.Delete;
							else if (column.CorePropertiesHash != statusColumn.CorePropertiesHash)
								dti.State = DataTreeItem.DataTreeItemStateConstants.Modified;
						}

						columns.Add(column.Name.ToLower(), dti);

					}

					#region Added Columns
					//if (oldView.Name == string.Empty)
					//{
					//  foreach (CustomViewColumn column in this.NewDatabase.CustomViews[viewKey].GetColumns())
					//  {
					//    columns.Add(column.Name.ToLower(), new DataTreeItem(column.Name, DataTreeItem.DataTreeItemStateConstants.Added));
					//  }
					//}
					//else
					//{
					//  if (this.NewDatabase.CustomViews.Contains(itemCache[oldView.Name.ToLower()].Name))
					//  {
					//    foreach (CustomViewColumn column in this.NewDatabase.CustomViews[itemCache[oldView.Name.ToLower()].Name].GetColumns())
					//    {
					//      CustomViewColumn statusColumn = this.CurrentDatabase.CustomViews[itemCache[oldView.Name.ToLower()].Name].GetColumns().FirstOrDefault(x => x.Name == column.Name);
					//      if (statusColumn == null)
					//        columns.Add(column.Name.ToLower(), new DataTreeItem(column.Name, DataTreeItem.DataTreeItemStateConstants.Added));
					//    }
					//  }
					//}

					////Now load columns into tree
					//if (this.NewDatabase.CustomViews.Contains(oldView.Name))
					//{
					//  foreach (string columnKey in columns.Keys)
					//  {
					//    var columnNode = new TreeNode(columns[columnKey].Name);
					//    if (columns[columnKey].State == DataTreeItem.DataTreeItemStateConstants.Added)
					//      columnNode.ForeColor = Color.Green;
					//    if (columns[columnKey].State == DataTreeItem.DataTreeItemStateConstants.Delete)
					//      columnNode.ForeColor = Color.Red;
					//    if (columns[columnKey].State == DataTreeItem.DataTreeItemStateConstants.Modified)
					//      columnNode.ForeColor = Color.Blue;

					//    columnNode.Tag = columns[columnKey];
					//    viewNode.Nodes.Add(columnNode);
					//  }
					//}
					#endregion

				}

			}
			catch (Exception ex)
			{
				throw;
			}
		}
コード例 #13
0
        private static void GenDataToCode(DataTreeItem dataTreeItem)
        {
            dataTreeItem.gen_funcname = "GetReddot_" + dataTreeItem.go.name;

            for (int i = 0; i < dataTreeItem.children.Count; ++i)
            {
                GenDataToCode(dataTreeItem.children[i]);
            }
            if ((!dataTreeItem.luaScriptName.Equals("")) && (!dataTreeItem.luaFunctionName.Equals("")))
            {
                dataTreeItem.gen_funcCode = dataTreeItem.gen_funcCode + dataTreeItem.luaScriptName + "." + dataTreeItem.luaFunctionName + "(";
                for (int j = 0; j < dataTreeItem.paramList.Count; ++j)
                {
                    if (j > 0)
                    {
                        dataTreeItem.gen_funcCode = ", ";
                    }
                    dataTreeItem.gen_funcCode = dataTreeItem.gen_funcCode + dataTreeItem.paramList[j];
                }
                dataTreeItem.gen_funcCode = dataTreeItem.gen_funcCode + ")";
            }
            else
            {
                //没有子节点,但是自己却没有获得红点的方法,那么这个节点是错误的,少录入了获取红点的调用的方法
                if (dataTreeItem.children.Count == 0)
                {
                    Debug.LogError("节点错误,该节点需要录入获取红点的调用的方法: " + dataTreeItem.go.name);
                }
                int childParamCount = 0;
                int childParamIndex = 0;
                for (int i = 0; i < dataTreeItem.children.Count; ++i)
                {
                    if (dataTreeItem.children[i].shuldPassParam)
                    {
                        childParamCount = childParamCount + dataTreeItem.children[i].paramList.Count;
                    }
                }
                for (int i = 0; i < dataTreeItem.children.Count; ++i)
                {
                    DataTreeItem item = dataTreeItem.children[i];
                    if (i > 0)
                    {
                        dataTreeItem.gen_funcCode = dataTreeItem.gen_funcCode + " + ";
                    }
                    dataTreeItem.gen_funcCode = dataTreeItem.gen_funcCode + "self." + item.gen_funcname;
                    if (childParamCount > 0 && item.shuldPassParam)
                    {
                        if (dataTreeItem.paramList.Count > 0)
                        {
                            if (dataTreeItem.paramList.Count != childParamCount)
                            {
                                Debug.LogError("子节点固定参数数量有误: " + dataTreeItem.go.name);
                            }
                            else
                            {
                                dataTreeItem.gen_funcCode = dataTreeItem.gen_funcCode + "(";
                                for (int j = 0; j < item.paramList.Count; ++j)
                                {
                                    if (j > 0)
                                    {
                                        dataTreeItem.gen_funcCode = dataTreeItem.gen_funcCode + ", ";
                                    }
                                    dataTreeItem.gen_funcCode = dataTreeItem.gen_funcCode + dataTreeItem.paramList[childParamIndex];
                                }
                                dataTreeItem.gen_funcCode = dataTreeItem.gen_funcCode + ")";
                            }
                        }
                        else
                        {
                            Debug.LogError("节点错误,该节点必须调用第三方函数或者为子函数指定传参(paramList): " + dataTreeItem.go.name + " <-----> " + item.go.name);
                        }
                    }
                    else
                    {
                        dataTreeItem.gen_funcCode = dataTreeItem.gen_funcCode + "()";
                    }
                }
            }
            dataTreeItem.gen_funcCode = dataTreeItem.gen_funcCode + "\n";
        }
コード例 #14
0
		private void RemoveAllNodes(TreeNodeCollection nodeList, DataTreeItem.DataTreeItemStateConstants excludeType)
		{
			var delList = new List<TreeNode>();
			foreach (TreeNode node in nodeList)
			{
				if (((DataTreeItem)node.Tag).State != excludeType)
				{
					delList.Add(node);
				}
				RemoveAllNodes(node.Nodes, excludeType);
			}

			foreach (var node in delList)
			{
				this.tvwAdd.Nodes.Remove(node);
			}
		}
コード例 #15
0
        private void PopulateDataSchema(TreeNode parentNode)
        {
            try
            {
                var tables = new SortedList <string, DataTreeItem>();

                //Current Tables
                foreach (Table t in this.CurrentDatabase.Tables)
                {
                    var dti = new DataTreeItem(t.Name);
                    if (this.NewDatabase.Tables.Contains(t.Name))
                    {
                        dti.Name = this.NewDatabase.Tables[t.Name].Name;
                    }

                    //Check for deleted status
                    if (!this.NewDatabase.Tables.Contains(t.Name))
                    {
                        dti.State = DataTreeItem.DataTreeItemStateConstants.Delete;
                    }
                    else if (this.NewDatabase.Tables[t.Name].CorePropertiesHash != t.CorePropertiesHash)
                    {
                        dti.State = DataTreeItem.DataTreeItemStateConstants.Modified;
                    }
                    else if (this.NewDatabase.Tables[t.Name].GetColumns().GetCorePropertiesHash() != t.GetColumns().GetCorePropertiesHash())
                    {
                        dti.State = DataTreeItem.DataTreeItemStateConstants.Modified;
                    }

                    tables.Add(t.Name.ToLower(), dti);
                }

                //Added Tables
                foreach (Table t in this.NewDatabase.Tables)
                {
                    if (!this.CurrentDatabase.Tables.Contains(t.Name))
                    {
                        tables.Add(t.Name.ToLower(), new DataTreeItem(t.Name, DataTreeItem.DataTreeItemStateConstants.Added));
                    }
                }

                //Now add to tree
                foreach (var tableKey in tables.Keys)
                {
                    var tableNode = new TreeNode(tables[tableKey].Name);
                    tableNode.Checked    = true;
                    tableNode.ImageIndex = 3;
                    tableNode.Tag        = tables[tableKey];
                    parentNode.Nodes.Add(tableNode);

                    var oldTable = this.CurrentDatabase.Tables[tableKey];
                    var newTable = this.NewDatabase.Tables[tableKey];
                    if (oldTable == null)
                    {
                        oldTable = new Table(this.CurrentDatabase.Root);
                    }
                    if (newTable == null)
                    {
                        newTable = new Table(this.NewDatabase.Root);
                    }

                    //Create list of all columns (new and old)
                    var columns = new SortedList <string, DataTreeItem>();
                    foreach (Reference r in oldTable.Columns)
                    {
                        var column = (Column)r.Object;
                        var dti    = new DataTreeItem(column.Name);

                        //Check for deleted status
                        if (this.NewDatabase.Tables.Contains(tables[oldTable.Name.ToLower()].Name))
                        {
                            var statusColumn = this.NewDatabase.Tables[tables[oldTable.Name.ToLower()].Name].GetColumns().FirstOrDefault(x => x.Name == column.Name);
                            if (statusColumn == null)
                            {
                                dti.State = DataTreeItem.DataTreeItemStateConstants.Delete;
                            }
                            else if (column.CorePropertiesHash != statusColumn.CorePropertiesHash)
                            {
                                dti.State = DataTreeItem.DataTreeItemStateConstants.Modified;
                            }
                        }

                        columns.Add(column.Name.ToLower(), dti);
                    }

                    #region Added Columns
                    //if (oldTable.Name == string.Empty)
                    //{
                    //  foreach (Column column in this.NewDatabase.Tables[tableKey].GetColumns())
                    //  {
                    //    columns.Add(column.Name.ToLower(), new DataTreeItem(column.Name, DataTreeItem.DataTreeItemStateConstants.Added));
                    //  }
                    //}
                    //else
                    //{
                    //  if (this.NewDatabase.Tables.Contains(tables[oldTable.Name.ToLower()].Name))
                    //  {
                    //    foreach (Column column in this.NewDatabase.Tables[tables[oldTable.Name.ToLower()].Name].GetColumns())
                    //    {
                    //      Column statusColumn = this.CurrentDatabase.Tables[tables[oldTable.Name.ToLower()].Name].GetColumns().FirstOrDefault(x => x.Name == column.Name);
                    //      if (statusColumn == null)
                    //        columns.Add(column.Name.ToLower(), new DataTreeItem(column.Name, DataTreeItem.DataTreeItemStateConstants.Added));
                    //    }
                    //  }
                    //}

                    ////Now load columns into tree
                    //if (this.NewDatabase.Tables.Contains(oldTable.Name))
                    //{
                    //  foreach (string columnKey in columns.Keys)
                    //  {
                    //    var columnNode = new TreeNode(columns[columnKey].Name);
                    //    if (columns[columnKey].State == DataTreeItem.DataTreeItemStateConstants.Added)
                    //      columnNode.ForeColor = Color.Green;
                    //    if (columns[columnKey].State == DataTreeItem.DataTreeItemStateConstants.Delete)
                    //      columnNode.ForeColor = Color.Red;
                    //    if (columns[columnKey].State == DataTreeItem.DataTreeItemStateConstants.Modified)
                    //      columnNode.ForeColor = Color.Blue;

                    //    columnNode.Tag = columns[columnKey];
                    //    tableNode.Nodes.Add(columnNode);
                    //  }
                    //}
                    #endregion
                }

                //this.BrandNodes(parentNode.Nodes);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
コード例 #16
0
        //private void PopulateRelationships(TreeNode parentNode)
        //{
        //  try
        //  {
        //    Random rnd = new Random();
        //    SortedList<string, DataTreeItem> relationList = new SortedList<string, DataTreeItem>();

        //    //Current Tables
        //    foreach (Table t in this.CurrentDatabase.Tables)
        //    {
        //      //Remove invalid links. Something is very wrong
        //      RelationCollection relationCollection = t.GetRelations();
        //      for (int ii = relationCollection.Count - 1; ii >= 0; ii--)
        //      {
        //        Relation relationshipItem = relationCollection[ii];
        //        int errorCount = 0;
        //        foreach (ColumnRelationship relationshipLinkItem in relationshipItem.ColumnRelationships)
        //        {
        //          if ((relationshipLinkItem.ChildColumnRef == null) || (relationshipLinkItem.ParentColumnRef == null))
        //            errorCount++;
        //        }
        //        if (errorCount > 0) t.Relationships.RemoveAt(ii);
        //      }
        //      //Remove Errors

        //      //If the table exists in the new graph...
        //      foreach (Relation relation in relationCollection)
        //      {
        //        Table t2 = this.NewDatabase.Tables[t.Name];
        //        DataTreeItem dti = new DataTreeItem(relation.RoleName);
        //        dti.Name = relation.ToLongString();
        //        if (t2 == null)
        //        {
        //          //The table was removed so the relationship was removed
        //          dti.State = DataTreeItem.DataTreeItemStateConstants.Delete;
        //        }
        //        else
        //        {
        //          //If the name changed then it was modified
        //          Relation[] r2List = t2.GetRelations().GetFromMatch(relation);
        //          if (r2List.Length == 0)
        //          {
        //            dti.State = DataTreeItem.DataTreeItemStateConstants.Delete;
        //          }
        //          else if (r2List.Length == 1)
        //          {
        //            if (r2List[0].RoleName != relation.RoleName)
        //              dti.State = DataTreeItem.DataTreeItemStateConstants.Modified;
        //          }
        //          else if (r2List.Length > 1)
        //          {
        //            //There are multiple relationships for this table/column combination
        //            bool found = false;
        //            foreach (Relation r2 in r2List)
        //            {
        //              #region OLD CODE
        //              //if (r2.RoleName == relation.RoleName) found = true;
        //              //string parentTableName1 = ((Table)r2.ParentTableRef.Object).Name;
        //              //string parentTableName2 = ((Table)relation.ParentTableRef.Object).Name;

        //              //SortedDictionary<string, ColumnRelationship> list1 = new SortedDictionary<string,ColumnRelationship>();
        //              //foreach (ColumnRelationship cr in r2.ColumnRelationships)
        //              //{
        //              //  list1.Add(((Column)cr.ChildColumnRef.Object).Name, cr);
        //              //}

        //              //SortedDictionary<string, ColumnRelationship> list2 = new SortedDictionary<string, ColumnRelationship>();
        //              //foreach (ColumnRelationship cr in relation.ColumnRelationships)
        //              //{
        //              //  list2.Add(((Column)cr.ChildColumnRef.Object).Name, cr);
        //              //}

        //              //string parentColName1 = string.Empty;
        //              //foreach (string key in list1.Keys)
        //              //{
        //              //  parentColName1 += key;
        //              //}

        //              //string parentColName2 = string.Empty;
        //              //foreach (string key in list2.Keys)
        //              //{
        //              //  parentColName2 += key;
        //              //}

        //              ////string parentCol
        //              //if ((parentTableName1 == parentTableName2) && (parentColName1 == parentColName2))
        //              //  found = true;
        //              #endregion

        //              if (r2.Equals(relation)) found = true;

        //            }
        //            if (!found)
        //              dti.State = DataTreeItem.DataTreeItemStateConstants.Modified;
        //          }

        //        }

        //        //If there is a duplicate then add a FAKE ROLE to it
        //        if (relationList.ContainsKey(relation.ToLongString().ToLower()))
        //        {
        //          relation.RoleName = "ROLE" + rnd.Next(10000, 100000);
        //          relationList.Add(relation.ToLongString().ToLower(), dti);
        //        }
        //        else
        //        {
        //          relationList.Add(relation.ToLongString().ToLower(), dti);
        //        }

        //      }
        //    }

        //    //Added Relationships
        //    foreach (Table t in this.NewDatabase.Tables)
        //    {
        //      foreach (Reference reference in t.Relationships)
        //      {
        //        Relation r = (Relation)reference.Object;
        //        string relationName = r.ToLongString();
        //        if (this.CurrentDatabase.Tables.Contains(t.Name))
        //        {
        //          //If the old model has this table
        //          Table t2 = this.CurrentDatabase.Tables[t.Name];
        //          if ((t2 != null) && (t2.GetRelations().GetFromMatch(r).Length == 0))
        //            relationList.Add(relationName.ToLower(), new DataTreeItem(relationName, DataTreeItem.DataTreeItemStateConstants.Added));
        //        }
        //        else
        //        {
        //          //Table and Relation not in old model
        //          if (!relationList.ContainsKey(relationName.ToLower()))
        //          {
        //            relationList.Add(relationName.ToLower(), new DataTreeItem(relationName, DataTreeItem.DataTreeItemStateConstants.Added));
        //          }
        //          else
        //          {
        //            int loop = 1;
        //            while (relationList.ContainsKey((relationName + "_RELATION" + loop).ToLower()))
        //            {
        //              loop++;
        //            }
        //            relationName += "_RELATION" + loop;
        //            relationList.Add(relationName.ToLower(), new DataTreeItem(relationName, DataTreeItem.DataTreeItemStateConstants.Added));
        //          }
        //        }
        //      }
        //    }

        //    //Now add to tree
        //    foreach (string relationKey in relationList.Keys)
        //    {
        //      var relationNode = new TreeNode(relationList[relationKey].Name);
        //      relationNode.Tag = relationList[relationKey];
        //      if (relationList[relationKey].State == DataTreeItem.DataTreeItemStateConstants.Added)
        //        relationNode.ForeColor = Color.Green;
        //      if (relationList[relationKey].State == DataTreeItem.DataTreeItemStateConstants.Delete)
        //        relationNode.ForeColor = Color.Red;
        //      if (relationList[relationKey].State == DataTreeItem.DataTreeItemStateConstants.Modified)
        //        relationNode.ForeColor = Color.Blue;

        //      parentNode.Nodes.Add(relationNode);
        //    }

        //    this.BrandNodes(parentNode.Nodes);

        //  }
        //  catch (Exception ex)
        //  {
        //    throw;
        //  }
        //}
        #endregion

        #region PopulateStoredProcedures
        //private void PopulateStoredProcedures(TreeNode parentNode)
        //{
        //  try
        //  {
        //    SortedList<string, DataTreeItem> itemCache = new SortedList<string, DataTreeItem>();

        //    //Current Items
        //    foreach (CustomStoredProcedure storedProcedure in this.CurrentDatabase.CustomStoredProcedures)
        //    {
        //      DataTreeItem dti = new DataTreeItem(storedProcedure.Name);
        //      if (this.NewDatabase.CustomStoredProcedures.Contains(storedProcedure.Name))
        //        dti.Name = this.NewDatabase.CustomStoredProcedures[storedProcedure.Name].Name;

        //      //Check for deleted status
        //      if (!this.NewDatabase.CustomStoredProcedures.Contains(storedProcedure.Name))
        //        dti.State = DataTreeItem.DataTreeItemStateConstants.Delete;
        //      else if (this.NewDatabase.CustomStoredProcedures[storedProcedure.Name].Name != storedProcedure.Name)
        //        dti.State = DataTreeItem.DataTreeItemStateConstants.Modified;
        //      else if (this.NewDatabase.CustomStoredProcedures[storedProcedure.Name].GetColumns().GetCorePropertiesHash() != storedProcedure.GetColumns().GetCorePropertiesHash())
        //        dti.State = DataTreeItem.DataTreeItemStateConstants.Modified;

        //      itemCache.Add(storedProcedure.Name.ToLower(), dti);
        //    }

        //    //Added Items
        //    foreach (CustomStoredProcedure t in this.NewDatabase.CustomStoredProcedures)
        //    {
        //      if (!this.CurrentDatabase.CustomStoredProcedures.Contains(t.Name))
        //        itemCache.Add(t.Name.ToLower(), new DataTreeItem(t.Name, DataTreeItem.DataTreeItemStateConstants.Added));
        //    }

        //    //Now add to tree
        //    foreach (string storedProcedureKey in itemCache.Keys)
        //    {
        //      var newNode = new TreeNode(itemCache[storedProcedureKey].Name);
        //      newNode.Tag = itemCache[storedProcedureKey];
        //      if (itemCache[storedProcedureKey].State == DataTreeItem.DataTreeItemStateConstants.Added)
        //        newNode.ForeColor = Color.Green;
        //      if (itemCache[storedProcedureKey].State == DataTreeItem.DataTreeItemStateConstants.Delete)
        //        newNode.ForeColor = Color.Red;
        //      if (itemCache[storedProcedureKey].State == DataTreeItem.DataTreeItemStateConstants.Modified)
        //        newNode.ForeColor = Color.Blue;

        //      parentNode.Nodes.Add(newNode);

        //      CustomStoredProcedure oldStoredProcedure = this.CurrentDatabase.CustomStoredProcedures[storedProcedureKey];
        //      CustomStoredProcedure newStoredProcedure = this.NewDatabase.CustomStoredProcedures[storedProcedureKey];
        //      if (oldStoredProcedure == null) oldStoredProcedure = new CustomStoredProcedure(this.CurrentDatabase.Root);
        //      if (newStoredProcedure == null) newStoredProcedure = new CustomStoredProcedure(this.NewDatabase.Root);

        //      //Create list of all columns (new and old)
        //      SortedList<string, DataTreeItem> columns = new SortedList<string, DataTreeItem>();
        //      foreach (Reference r in oldStoredProcedure.Columns)
        //      {
        //        CustomStoredProcedureColumn column = (CustomStoredProcedureColumn)r.Object;
        //        DataTreeItem dti = new DataTreeItem(column.Name);

        //        //Check for deleted status
        //        if (this.NewDatabase.CustomStoredProcedures.Contains(itemCache[oldStoredProcedure.Name.ToLower()].Name))
        //        {
        //          CustomStoredProcedureColumn statusColumn = this.NewDatabase.CustomStoredProcedures[itemCache[oldStoredProcedure.Name.ToLower()].Name].GetColumns().FirstOrDefault(x => x.Name == column.Name);
        //          if (statusColumn == null)
        //            dti.State = DataTreeItem.DataTreeItemStateConstants.Delete;
        //          else if (column.CorePropertiesHash != statusColumn.CorePropertiesHash)
        //            dti.State = DataTreeItem.DataTreeItemStateConstants.Modified;
        //        }

        //        columns.Add(column.Name.ToLower(), dti);

        //      }

        //      //Added Columns
        //      if (oldStoredProcedure.Name == string.Empty)
        //      {
        //        foreach (CustomStoredProcedureColumn column in this.NewDatabase.CustomStoredProcedures[storedProcedureKey].GetColumns())
        //        {
        //          columns.Add(column.Name.ToLower(), new DataTreeItem(column.Name, DataTreeItem.DataTreeItemStateConstants.Added));
        //        }
        //      }
        //      else
        //      {
        //        if (this.NewDatabase.CustomStoredProcedures.Contains(itemCache[oldStoredProcedure.Name.ToLower()].Name))
        //        {
        //          foreach (CustomStoredProcedureColumn column in this.NewDatabase.CustomStoredProcedures[itemCache[oldStoredProcedure.Name.ToLower()].Name].GetColumns())
        //          {
        //            CustomStoredProcedureColumn statusColumn = this.CurrentDatabase.CustomStoredProcedures[itemCache[oldStoredProcedure.Name.ToLower()].Name].GetColumns().FirstOrDefault(x => x.Name == column.Name);
        //            if (statusColumn == null)
        //              columns.Add(column.Name.ToLower(), new DataTreeItem(column.Name, DataTreeItem.DataTreeItemStateConstants.Added));
        //          }
        //        }
        //      }

        //      //Now load columns into tree
        //      if (this.NewDatabase.CustomStoredProcedures.Contains(oldStoredProcedure.Name))
        //      {
        //        foreach (string columnKey in columns.Keys)
        //        {
        //          var columnNode = new TreeNode(columns[columnKey].Name);
        //          if (columns[columnKey].State == DataTreeItem.DataTreeItemStateConstants.Added)
        //            columnNode.ForeColor = Color.Green;
        //          if (columns[columnKey].State == DataTreeItem.DataTreeItemStateConstants.Delete)
        //            columnNode.ForeColor = Color.Red;
        //          if (columns[columnKey].State == DataTreeItem.DataTreeItemStateConstants.Modified)
        //            columnNode.ForeColor = Color.Blue;

        //          columnNode.Tag = columns[columnKey];
        //          newNode.Nodes.Add(columnNode);
        //        }
        //      }

        //    }

        //    this.BrandNodes(parentNode.Nodes);

        //  }
        //  catch (Exception ex)
        //  {
        //    throw;
        //  }
        //}
        #endregion

        private void PopulateViews(TreeNode parentNode)
        {
            try
            {
                var itemCache = new SortedList <string, DataTreeItem>();

                //Current Items
                foreach (CustomView view in this.CurrentDatabase.CustomViews)
                {
                    var dti = new DataTreeItem(view.Name);
                    if (this.NewDatabase.CustomViews.Contains(view.Name))
                    {
                        dti.Name = this.NewDatabase.CustomViews[view.Name].Name;
                    }

                    //Check for deleted status
                    if (!this.NewDatabase.CustomViews.Contains(view.Name))
                    {
                        dti.State = DataTreeItem.DataTreeItemStateConstants.Delete;
                    }
                    else if (this.NewDatabase.CustomViews[view.Name].Name != view.Name)
                    {
                        dti.State = DataTreeItem.DataTreeItemStateConstants.Modified;
                    }
                    else if (this.NewDatabase.CustomViews[view.Name].GetColumns().GetCorePropertiesHash() != view.GetColumns().GetCorePropertiesHash())
                    {
                        dti.State = DataTreeItem.DataTreeItemStateConstants.Modified;
                    }

                    itemCache.Add(view.Name.ToLower(), dti);
                }

                //Added Items
                foreach (CustomView t in this.NewDatabase.CustomViews)
                {
                    if (!this.CurrentDatabase.CustomViews.Contains(t.Name))
                    {
                        itemCache.Add(t.Name.ToLower(), new DataTreeItem(t.Name, DataTreeItem.DataTreeItemStateConstants.Added));
                    }
                }

                //Now add to tree
                foreach (var viewKey in itemCache.Keys)
                {
                    var viewNode = new TreeNode(itemCache[viewKey].Name);
                    viewNode.Checked    = true;
                    viewNode.ImageIndex = 4;
                    viewNode.Tag        = itemCache[viewKey];
                    //if (itemCache[viewKey].State == DataTreeItem.DataTreeItemStateConstants.Added)
                    //  viewNode.ForeColor = Color.Green;
                    //if (itemCache[viewKey].State == DataTreeItem.DataTreeItemStateConstants.Delete)
                    //  viewNode.ForeColor = Color.Red;
                    //if (itemCache[viewKey].State == DataTreeItem.DataTreeItemStateConstants.Modified)
                    //  viewNode.ForeColor = Color.Blue;

                    parentNode.Nodes.Add(viewNode);

                    var oldView = this.CurrentDatabase.CustomViews[viewKey];
                    var newView = this.NewDatabase.CustomViews[viewKey];
                    if (oldView == null)
                    {
                        oldView = new CustomView(this.CurrentDatabase.Root);
                    }
                    if (newView == null)
                    {
                        newView = new CustomView(this.NewDatabase.Root);
                    }

                    //Create list of all columns (new and old)
                    var columns = new SortedList <string, DataTreeItem>();
                    foreach (Reference r in oldView.Columns)
                    {
                        var column = (CustomViewColumn)r.Object;
                        var dti    = new DataTreeItem(column.Name);

                        //Check for deleted status
                        if (this.NewDatabase.CustomViews.Contains(itemCache[oldView.Name.ToLower()].Name))
                        {
                            var statusColumn = this.NewDatabase.CustomViews[itemCache[oldView.Name.ToLower()].Name].GetColumns().FirstOrDefault(x => x.Name == column.Name);
                            if (statusColumn == null)
                            {
                                dti.State = DataTreeItem.DataTreeItemStateConstants.Delete;
                            }
                            else if (column.CorePropertiesHash != statusColumn.CorePropertiesHash)
                            {
                                dti.State = DataTreeItem.DataTreeItemStateConstants.Modified;
                            }
                        }

                        columns.Add(column.Name.ToLower(), dti);
                    }

                    #region Added Columns
                    //if (oldView.Name == string.Empty)
                    //{
                    //  foreach (CustomViewColumn column in this.NewDatabase.CustomViews[viewKey].GetColumns())
                    //  {
                    //    columns.Add(column.Name.ToLower(), new DataTreeItem(column.Name, DataTreeItem.DataTreeItemStateConstants.Added));
                    //  }
                    //}
                    //else
                    //{
                    //  if (this.NewDatabase.CustomViews.Contains(itemCache[oldView.Name.ToLower()].Name))
                    //  {
                    //    foreach (CustomViewColumn column in this.NewDatabase.CustomViews[itemCache[oldView.Name.ToLower()].Name].GetColumns())
                    //    {
                    //      CustomViewColumn statusColumn = this.CurrentDatabase.CustomViews[itemCache[oldView.Name.ToLower()].Name].GetColumns().FirstOrDefault(x => x.Name == column.Name);
                    //      if (statusColumn == null)
                    //        columns.Add(column.Name.ToLower(), new DataTreeItem(column.Name, DataTreeItem.DataTreeItemStateConstants.Added));
                    //    }
                    //  }
                    //}

                    ////Now load columns into tree
                    //if (this.NewDatabase.CustomViews.Contains(oldView.Name))
                    //{
                    //  foreach (string columnKey in columns.Keys)
                    //  {
                    //    var columnNode = new TreeNode(columns[columnKey].Name);
                    //    if (columns[columnKey].State == DataTreeItem.DataTreeItemStateConstants.Added)
                    //      columnNode.ForeColor = Color.Green;
                    //    if (columns[columnKey].State == DataTreeItem.DataTreeItemStateConstants.Delete)
                    //      columnNode.ForeColor = Color.Red;
                    //    if (columns[columnKey].State == DataTreeItem.DataTreeItemStateConstants.Modified)
                    //      columnNode.ForeColor = Color.Blue;

                    //    columnNode.Tag = columns[columnKey];
                    //    viewNode.Nodes.Add(columnNode);
                    //  }
                    //}
                    #endregion
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }
コード例 #17
0
		private void PopulateDataSchema(TreeNode parentNode)
		{
			try
			{
				var tables = new SortedList<string, DataTreeItem>();

				//Current Tables
				foreach (Table t in this.CurrentDatabase.Tables)
				{
					var dti = new DataTreeItem(t.Name);
					if (this.NewDatabase.Tables.Contains(t.Name))
						dti.Name = this.NewDatabase.Tables[t.Name].Name;

					//Check for deleted status
					if (!this.NewDatabase.Tables.Contains(t.Name))
						dti.State = DataTreeItem.DataTreeItemStateConstants.Delete;
					else if (this.NewDatabase.Tables[t.Name].CorePropertiesHash != t.CorePropertiesHash)
						dti.State = DataTreeItem.DataTreeItemStateConstants.Modified;
					else if (this.NewDatabase.Tables[t.Name].GetColumns().GetCorePropertiesHash() != t.GetColumns().GetCorePropertiesHash())
						dti.State = DataTreeItem.DataTreeItemStateConstants.Modified;

					tables.Add(t.Name.ToLower(), dti);
				}

				//Added Tables
				foreach (Table t in this.NewDatabase.Tables)
				{
					if (!this.CurrentDatabase.Tables.Contains(t.Name))
						tables.Add(t.Name.ToLower(), new DataTreeItem(t.Name, DataTreeItem.DataTreeItemStateConstants.Added));
				}

				//Now add to tree
				foreach (var tableKey in tables.Keys)
				{
					var tableNode = new TreeNode(tables[tableKey].Name);
					tableNode.Checked = true;
					tableNode.ImageIndex = 3;
					tableNode.Tag = tables[tableKey];
					parentNode.Nodes.Add(tableNode);

					var oldTable = this.CurrentDatabase.Tables[tableKey];
					var newTable = this.NewDatabase.Tables[tableKey];
					if (oldTable == null) oldTable = new Table(this.CurrentDatabase.Root);
					if (newTable == null) newTable = new Table(this.NewDatabase.Root);

					//Create list of all columns (new and old)
					var columns = new SortedList<string, DataTreeItem>();
					foreach (Reference r in oldTable.Columns)
					{
						var column = (Column)r.Object;
						var dti = new DataTreeItem(column.Name);

						//Check for deleted status
						if (this.NewDatabase.Tables.Contains(tables[oldTable.Name.ToLower()].Name))
						{
							var statusColumn = this.NewDatabase.Tables[tables[oldTable.Name.ToLower()].Name].GetColumns().FirstOrDefault(x => x.Name == column.Name);
							if (statusColumn == null)
								dti.State = DataTreeItem.DataTreeItemStateConstants.Delete;
							else if (column.CorePropertiesHash != statusColumn.CorePropertiesHash)
								dti.State = DataTreeItem.DataTreeItemStateConstants.Modified;
						}

						columns.Add(column.Name.ToLower(), dti);

					}

					#region Added Columns
					//if (oldTable.Name == string.Empty)
					//{
					//  foreach (Column column in this.NewDatabase.Tables[tableKey].GetColumns())
					//  {
					//    columns.Add(column.Name.ToLower(), new DataTreeItem(column.Name, DataTreeItem.DataTreeItemStateConstants.Added));
					//  }
					//}
					//else
					//{
					//  if (this.NewDatabase.Tables.Contains(tables[oldTable.Name.ToLower()].Name))
					//  {
					//    foreach (Column column in this.NewDatabase.Tables[tables[oldTable.Name.ToLower()].Name].GetColumns())
					//    {
					//      Column statusColumn = this.CurrentDatabase.Tables[tables[oldTable.Name.ToLower()].Name].GetColumns().FirstOrDefault(x => x.Name == column.Name);
					//      if (statusColumn == null)
					//        columns.Add(column.Name.ToLower(), new DataTreeItem(column.Name, DataTreeItem.DataTreeItemStateConstants.Added));
					//    }
					//  }
					//}

					////Now load columns into tree
					//if (this.NewDatabase.Tables.Contains(oldTable.Name))
					//{
					//  foreach (string columnKey in columns.Keys)
					//  {
					//    var columnNode = new TreeNode(columns[columnKey].Name);
					//    if (columns[columnKey].State == DataTreeItem.DataTreeItemStateConstants.Added)
					//      columnNode.ForeColor = Color.Green;
					//    if (columns[columnKey].State == DataTreeItem.DataTreeItemStateConstants.Delete)
					//      columnNode.ForeColor = Color.Red;
					//    if (columns[columnKey].State == DataTreeItem.DataTreeItemStateConstants.Modified)
					//      columnNode.ForeColor = Color.Blue;

					//    columnNode.Tag = columns[columnKey];
					//    tableNode.Nodes.Add(columnNode);
					//  }
					//}
					#endregion

				}

				//this.BrandNodes(parentNode.Nodes);

			}
			catch (Exception ex)
			{
				throw;
			}
		}