public void AddRootNode <T>(CrmSolution crmSol, string itemName, string collectionName, string displayName, CrmComponentCollection <T> collection, int imgIdx) where T : CrmComponent
        {
            var rootNode = new CrmTreeNode <T>()
            {
                Component = new CrmComponent()
                {
                    Text = displayName
                },
                Tag        = collectionName,
                ImageIndex = imgIdx,
                Collection = collection
            };

            tree.Nodes.Add(rootNode);
            foreach (var c in collection.Components)
            {
                var d = (CrmComponent)c;
                var n = new CrmTreeNode <T>()
                {
                    Component  = c,
                    Tag        = itemName,
                    ImageIndex = imgIdx,
                    Name       = c.Name
                };
                rootNode.Nodes.Add(n);
            }
        }
Exemple #2
0
        private void MILoadOrganizations_Click(object sender, EventArgs e)
        {
            int count = ConfigurationManager.ConnectionStrings.Count;
            List <KeyValuePair <String, String> > filteredConnectionStrings = new List <KeyValuePair <String, String> >();

            if (!Context.IsOrganizationLoaded)
            {
                for (int a = 0; a < count; a++)
                {
                    var name    = ConfigurationManager.ConnectionStrings[a].Name;
                    var connStr = ConfigurationManager.ConnectionStrings[a].ConnectionString;
                    if (isValidConnectionString(connStr))
                    {
                        CrmServiceClient conn = new CrmServiceClient(connStr);
                        var orgService        = (IOrganizationService)conn.OrganizationWebProxyClient != null ? (IOrganizationService)conn.OrganizationWebProxyClient : (IOrganizationService)conn.OrganizationServiceProxy;
                        Context.Services.Add(new KeyValuePair <string, IOrganizationService>(name, orgService));

                        var crmOrg = new CrmOrganization()
                        {
                            Name    = name,
                            Service = orgService,
                            Type    = EnumTypes.TreeNodeType.Organization,
                        };

                        Context.CrmOrganizations.Add(crmOrg);

                        cbLeftOrg.Items.Add(crmOrg);
                        cbRightOrg.Items.Add(crmOrg);

                        var crmOrgNode = new CrmTreeNode <CrmOrganization>()
                        {
                            Component = crmOrg,
                            Text      = name,
                            Tag       = "Organization"
                        };

                        tvOrgs.Nodes.Add(crmOrgNode);

                        LoadOrganizationNode <CrmOrganization>(name, crmOrg, crmOrgNode);
                    }
                }

                Context.IsOrganizationLoaded = true;
            }
            //else
            //    RefreshOrganizations();

            tvOrgs.ExpandAll();

            ShowTab(tabDeploymentExplorer);

            EnableMenu();
        }
Exemple #3
0
        private void CBTargetOrg_SelectedIndexChanged(object sender, EventArgs e)
        {
            targetOrg = (CrmOrganization)((ToolStripComboBox)sender).SelectedItem;
            var crmOrgNode = new CrmTreeNode <CrmOrganization>()
            {
                Component = targetOrg,
                Text      = targetOrg.Name,
                Tag       = "Organization"
            };

            tvRightOrg.Nodes.Add(crmOrgNode);

            LoadOrganizationNode(targetOrg.Name, targetOrg, crmOrgNode);
        }
        public void ShowCollection <T>(TreeNode node, CrmTreeNode <T> childNode, string name, string text) where T : CrmComponent
        {
            var componentNode = (CrmTreeNode <T>)node;
            var controls      = pageContainer.Controls.Find(name, false);

            if (controls.Length == 0)
            {
                var compCollectViewer = new ComponentCollectionViewer();
                compCollectViewer.Display(componentNode.Collection, childNode);
                pageContainer.Controls.Add(GetNewPage(name, text, compCollectViewer));
            }

            pageContainer.SelectTab(name);
        }
        private void CBOrgs_SelectedIndexChanged(object sender, EventArgs e)
        {
            var sourceOrg = (CrmOrganization)((ComboBox)sender).SelectedItem;

            var crmOrgNode = new CrmTreeNode <CrmOrganization>()
            {
                Component = sourceOrg,
                Text      = sourceOrg.Name,
                Tag       = "Organization"
            };

            tvSolutions.Nodes.Add(crmOrgNode);

            LoadOrganizationNode(sourceOrg.Name, sourceOrg, crmOrgNode);
        }
Exemple #6
0
        public void Display <T>(CrmComponentCollection <T> compCollection, CrmTreeNode <T> childNode) where T : CrmComponent
        {
            foreach (var kv in compCollection.Properties)
            {
                lvComponents.Columns.Add(new ColumnHeader()
                {
                    Text = kv.Value
                });
            }
            foreach (var comp in compCollection.Components)
            {
                ListViewItem item = null;
                int          i    = 0;
                foreach (var kv in compCollection.Properties)
                {
                    if (i == 0)
                    {
                        item     = new ListViewItem(comp.GetPropertyValue(kv.Key)?.ToString());
                        item.Tag = comp;
                        lvComponents.Items.Add(item);
                        item.Name = comp.Name;
                    }
                    else
                    {
                        item.SubItems.Add(comp.GetPropertyValue(kv.Key)?.ToString());
                    }
                    i++;
                }
            }
            lvComponents.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
            for (int j = 0; j < lvComponents.Columns.Count; j++)
            {
                var col = lvComponents.Columns[j];
                col.Width = col.Width < 150 ? 150 : col.Width;
            }

            if (childNode != null)
            {
                var nodeToSelect = lvComponents.Items.Find(childNode.Name, false);
                if (nodeToSelect.Length > 0)
                {
                    nodeToSelect[0].Selected = true;
                }
            }
        }
        public CrmSolution GetSelectedSolution(TreeNode node, SolutionSelecterControl ctrSolSelecter, SolCompareResultControl ctrSolCompareResult)
        {
            var      selectedOrg  = (CrmOrganization)ctrSolSelecter.CBOrgs.SelectedItem;
            TreeNode foundOrgNode = null;

            foreach (TreeNode orgNode in OrganizationTree.Nodes)
            {
                if (orgNode.Text == selectedOrg.ToString())
                {
                    foundOrgNode = orgNode;
                    break;
                }
            }

            CrmTreeNode <CrmSolution> foundSolNode = null;

            if (foundOrgNode != null)
            {
                foreach (CrmTreeNode <CrmSolution> solNode in foundOrgNode.Nodes)
                {
                    if (solNode.Text == node.Text)
                    {
                        foundSolNode = solNode;
                        break;
                    }
                    foreach (CrmTreeNode <CrmSolution> childSolNode in solNode.Nodes)
                    {
                        if (childSolNode.Text == node.Text)
                        {
                            foundSolNode = solNode;
                            break;
                        }
                    }
                }
                if (foundSolNode != null)
                {
                    return((CrmSolution)foundSolNode.Component);
                }
            }
            return(null);
        }
        private void ReLoadSolutions()
        {
            if (CrmOrg != null)
            {
                tvSolutions.Nodes.Clear();

                var solutions = SolutionHelper.GetSolutions(CrmOrg.Service);

                foreach (var sol in solutions)
                {
                    var crmSolNode = new CrmTreeNode <CrmSolution>()
                    {
                        Component = sol,
                        Text      = sol.NameVersion,
                        Tag       = "SolutionBase",
                        Name      = sol.FriendlyName
                    };

                    tvSolutions.Nodes.Add(crmSolNode);

                    foreach (var childSol in sol.ChildSolutions.Components)
                    {
                        var crmChildSolNode = new CrmTreeNode <CrmSolution>()
                        {
                            Component = childSol,
                            Text      = childSol.NameVersion,
                            Tag       = "SolutionPatch",
                            Name      = childSol.FriendlyName
                        };

                        crmSolNode.Nodes.Add(crmChildSolNode);
                    }
                }

                tvSolutions.ExpandAll();
            }
        }
        private void BtnCompare_Click(object sender, EventArgs e)
        {
            ctrlLeftCompareResult.Tree.Nodes.Clear();
            ctrlRightCompareResult.Tree.Nodes.Clear();
            ctrlInterCompareResult.Tree.Nodes.Clear();

            var leftNode  = ctrlLeftSolSelecter.OrganizationTree?.SelectedNode;
            var rightNode = ctrlRightSolSelecter.OrganizationTree?.SelectedNode;

            if (this.leftSelectedSol == null || this.rightSelectedSol == null)
            {
                MessageBox.Show("Please select 2 solutions to compare");
                return;
            }
            if (leftSelectedSol.Tree == null)
            {
                MessageBox.Show($"Please load the {leftSelectedSol.NameVersion} solution first");
                return;
            }
            if (rightSelectedSol.Tree == null)
            {
                MessageBox.Show($"Please load the {rightSelectedSol.NameVersion} solution first");
                return;
            }


            foreach (TreeNode leftRootNode in leftSelectedSol.Tree.Nodes)
            {
                TreeNode lrn = null;
                TreeNode irn = null;

                TreeNode rightRootNode = null;
                foreach (TreeNode n in rightSelectedSol.Tree.Nodes)
                {
                    if (leftRootNode.Text == n.Text)
                    {
                        rightRootNode = n;
                        break;
                    }
                }
                lrn = new CrmTreeNode <string>()
                {
                    Text = leftRootNode.Text
                };
                ctrlLeftCompareResult.Tree.Nodes.Add(lrn);
                if (rightRootNode != null)
                {
                    irn = new CrmTreeNode <string>()
                    {
                        Text = leftRootNode.Text
                    };
                    ctrlInterCompareResult.Tree.Nodes.Add(irn);
                    foreach (TreeNode ln in leftRootNode.Nodes)
                    {
                        TreeNode rn = null;
                        foreach (TreeNode n in rightRootNode.Nodes)
                        {
                            if (ln.Text == n.Text)
                            {
                                rn = n;
                                break;
                            }
                        }
                        if (rn == null)
                        {
                            lrn.Nodes.Add(new CrmTreeNode <string>()
                            {
                                Text = ln.Text
                            });
                        }
                        else
                        {
                            irn.Nodes.Add(new CrmTreeNode <string>()
                            {
                                Text = ln.Text
                            });
                        }
                    }
                }
            }
            foreach (TreeNode rightRootNode in rightSelectedSol.Tree.Nodes)
            {
                TreeNode rrn = null;

                TreeNode leftRootNode = null;
                foreach (TreeNode n in leftSelectedSol.Tree.Nodes)
                {
                    if (rightRootNode.Text == n.Text)
                    {
                        leftRootNode = n;
                        break;
                    }
                }
                rrn = new CrmTreeNode <string>()
                {
                    Text = rightRootNode.Text
                };
                ctrlRightCompareResult.Tree.Nodes.Add(rrn);
                if (leftRootNode != null)
                {
                    foreach (TreeNode rn in rightRootNode.Nodes)
                    {
                        TreeNode ln = null;
                        foreach (TreeNode n in leftRootNode.Nodes)
                        {
                            if (rn.Text == n.Text)
                            {
                                ln = n;
                                break;
                            }
                        }
                        if (ln == null)
                        {
                            rrn.Nodes.Add(new CrmTreeNode <string>()
                            {
                                Text = rn.Text
                            });
                        }
                    }
                }
            }
        }
Exemple #10
0
        public void ShowAssets <T>(CrmTreeNode <T> entityNode)
        {
            var entityComponent = (EntityComponent)entityNode.Component;

            var lvAttributes      = _entityDetail.LvAttributes;
            var lv1NRelationships = _entityDetail.Lv1NRelationships;
            var lvN1Relationships = _entityDetail.LvN1Relationships;
            var lvNNRelationships = _entityDetail.LvNNRelationships;

            lvAttributes.Columns.Clear();
            lvAttributes.Items.Clear();

            lvAttributes.View = View.Details;
            lvAttributes.Columns.Add("Name", 150);
            lvAttributes.Columns.Add("DisplayName", 150);
            lvAttributes.Columns.Add("Version", 100);
            lvAttributes.Columns.Add("Type", 150);
            lvAttributes.Columns.Add("Description", 250);
            foreach (var attr in entityComponent.Attributes)
            {
                var item = new ListViewItem(new string[] {
                    attr.SchemaName.ToString(),
                    attr.DisplayName?.ToString(),
                    attr.IntroducedVersion.ToString(),
                    attr.AttributeTypeName.ToString(),
                    attr.Description?.ToString(),
                });

                item.Tag = attr;
                lvAttributes.Items.Add(item);
            }

            lvN1Relationships.Columns.Clear();
            lvN1Relationships.Items.Clear();
            lvN1Relationships.Columns.Add("Name", 150);
            lvN1Relationships.Columns.Add("Parent", 150);
            lvN1Relationships.Columns.Add("Child", 150);
            lvN1Relationships.Columns.Add("Attribute", 150);
            lvN1Relationships.Columns.Add("Type", 150);
            foreach (var rel in entityComponent.ManyToOneRelashionships)
            {
                var item = new ListViewItem(new string[] {
                    rel.SchemaName.ToString(),
                    rel.ReferencingEntity,
                    rel.ReferencedEntity,
                    rel.ReferencingAttribute,
                    rel.RelationshipType.ToString(),
                });

                item.Tag = rel;
                lvN1Relationships.Items.Add(item);
            }

            lv1NRelationships.Columns.Clear();
            lv1NRelationships.Items.Clear();
            lv1NRelationships.Columns.Add("Name", 150);
            lv1NRelationships.Columns.Add("Parent", 150);
            lv1NRelationships.Columns.Add("Child", 150);
            lv1NRelationships.Columns.Add("Attribute", 150);
            lv1NRelationships.Columns.Add("Type", 150);
            foreach (var rel in entityComponent.OneToManyRelashionships)
            {
                var item = new ListViewItem(new string[] {
                    rel.SchemaName.ToString(),
                    rel.ReferencingEntity,
                    rel.ReferencedEntity,
                    rel.ReferencingAttribute,
                    rel.RelationshipType.ToString(),
                });
                item.Tag = rel;
                lv1NRelationships.Items.Add(item);
            }

            lvNNRelationships.Columns.Clear();
            lvNNRelationships.Items.Clear();
            lvNNRelationships.Columns.Add("Name", 150);
            lvNNRelationships.Columns.Add("E1 - Logical Name", 150);
            lvNNRelationships.Columns.Add("E1 - Attribute", 150);
            lvNNRelationships.Columns.Add("E2 - Logical Name", 150);
            lvNNRelationships.Columns.Add("E2 - Attribute", 150);
            lvNNRelationships.Columns.Add("Type", 150);
            foreach (var rel in entityComponent.ManyToManyRelationships)
            {
                var item = new ListViewItem(new string[] {
                    rel.SchemaName.ToString(),
                    rel.Entity1LogicalName,
                    rel.Entity1IntersectAttribute,
                    rel.Entity2LogicalName,
                    rel.Entity2IntersectAttribute,
                    rel.RelationshipType.ToString(),
                });
                item.Tag = rel;
                lvNNRelationships.Items.Add(item);
            }
        }