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); } }
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(); }
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); }
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 }); } } } } }
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); } }