From 89747b5fa9ab14beb8eea114386131ee3c791d2c Mon Sep 17 00:00:00 2001 From: OMGUSED Date: Thu, 27 May 2021 22:48:48 +0200 Subject: [PATCH 1/3] Update CloneFieldsControl.cs Bug Fix: Removed renaming of OptionSet for attributes that use global OptionSets --- .../CloneFieldsControl.cs | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/lib/MsDyn.Contrib.CloneFieldDefinitions/CloneFieldsControl.cs b/src/lib/MsDyn.Contrib.CloneFieldDefinitions/CloneFieldsControl.cs index 066bd9a..5d28939 100644 --- a/src/lib/MsDyn.Contrib.CloneFieldDefinitions/CloneFieldsControl.cs +++ b/src/lib/MsDyn.Contrib.CloneFieldDefinitions/CloneFieldsControl.cs @@ -725,16 +725,6 @@ private void CloneOptionSetAttribute(string sourceEntityName, string targetEntit optionSetAttribute.OptionSet.MetadataId = Guid.NewGuid(); optionSetAttribute.OptionSet.Name = optionSetAttribute.OptionSet.Name.ReplaceEntityName(sourceEntityName, targetEntityName); } - else if (optionSetAttribute?.OptionSet?.IsGlobal != null && - optionSetAttribute.OptionSet.IsGlobal.Value) - { - optionSetAttribute.OptionSet.MetadataId = Guid.NewGuid(); - optionSetAttribute.OptionSet.IsGlobal = true; - optionSetAttribute.OptionSet.Name = optionSetAttribute.OptionSet.Name.Replace(sourceEntityName, - targetEntityName); - optionSetAttribute.OptionSet.Options.Clear(); - - } } private void CloneBooleanAttribute(string sourceEntityName, string targetEntityName, AttributeMetadata attribute) From fb68611980f75478755a7bff23d0870a399aa531 Mon Sep 17 00:00:00 2001 From: Kevin Grech Date: Mon, 14 Apr 2025 12:45:41 +0200 Subject: [PATCH 2/3] Renamed Comboboxes, Changed style to Dropdown Renamed comboboxes and changed their style to allow the user to type the logical name so the list will show the next item that matches what the user typed. Didn't use the second style due to conflict in the UI (it would show both its source list and the edit suggestions) --- .../CloneFieldsControl.cs | 78 ++++++++++--------- 1 file changed, 41 insertions(+), 37 deletions(-) diff --git a/src/lib/MsDyn.Contrib.CloneFieldDefinitions/CloneFieldsControl.cs b/src/lib/MsDyn.Contrib.CloneFieldDefinitions/CloneFieldsControl.cs index 5d28939..321a7c1 100644 --- a/src/lib/MsDyn.Contrib.CloneFieldDefinitions/CloneFieldsControl.cs +++ b/src/lib/MsDyn.Contrib.CloneFieldDefinitions/CloneFieldsControl.cs @@ -21,9 +21,9 @@ public class CloneFieldDefinitionsControl : MultipleConnectionsPluginControlBase { private FlowLayoutPanel flowLayoutPanel2; private Label label1; - private ComboBox comboBox1; + private ComboBox cmb_SourceEntity; private Label label2; - private ComboBox comboBox2; + private ComboBox cmb_TargetEntity; private ListView listView1; private ColumnHeader columnHeader1; private ColumnHeader columnHeader2; @@ -84,8 +84,8 @@ private void AdjustWidthComboBox_DropDown(object sender, System.EventArgs e) private void SetAvailableEntities() { - comboBox1.Items.Clear(); - comboBox2.Items.Clear(); + cmb_SourceEntity.Items.Clear(); + cmb_TargetEntity.Items.Clear(); _entitiesSource .Select(e => new { e.LogicalName, e.MetadataId }) @@ -93,7 +93,7 @@ private void SetAvailableEntities() .ToList() .ForEach(name => { - comboBox1.Items.Add(name.LogicalName); + cmb_SourceEntity.Items.Add(name.LogicalName); }); _entitiesTarget @@ -102,7 +102,7 @@ private void SetAvailableEntities() .ToList() .ForEach(name => { - comboBox2.Items.Add(name.LogicalName); + cmb_TargetEntity.Items.Add(name.LogicalName); }); } @@ -162,9 +162,9 @@ private void InitializeComponent() { this.flowLayoutPanel2 = new System.Windows.Forms.FlowLayoutPanel(); this.label1 = new System.Windows.Forms.Label(); - this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.cmb_SourceEntity = new System.Windows.Forms.ComboBox(); this.label2 = new System.Windows.Forms.Label(); - this.comboBox2 = new System.Windows.Forms.ComboBox(); + this.cmb_TargetEntity = new System.Windows.Forms.ComboBox(); this.button1 = new System.Windows.Forms.Button(); this.label3 = new System.Windows.Forms.Label(); this.txtPrefix = new System.Windows.Forms.TextBox(); @@ -187,9 +187,9 @@ private void InitializeComponent() this.flowLayoutPanel2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.flowLayoutPanel2.Controls.Add(this.label1); - this.flowLayoutPanel2.Controls.Add(this.comboBox1); + this.flowLayoutPanel2.Controls.Add(this.cmb_SourceEntity); this.flowLayoutPanel2.Controls.Add(this.label2); - this.flowLayoutPanel2.Controls.Add(this.comboBox2); + this.flowLayoutPanel2.Controls.Add(this.cmb_TargetEntity); this.flowLayoutPanel2.Controls.Add(this.button1); this.flowLayoutPanel2.Controls.Add(this.label3); this.flowLayoutPanel2.Controls.Add(this.txtPrefix); @@ -212,16 +212,18 @@ private void InitializeComponent() this.label1.TabIndex = 0; this.label1.Text = "Source Entity"; // - // comboBox1 + // cmb_SourceEntity // - this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.comboBox1.FormattingEnabled = true; - this.comboBox1.Location = new System.Drawing.Point(79, 3); - this.comboBox1.Name = "comboBox1"; - this.comboBox1.Size = new System.Drawing.Size(121, 21); - this.comboBox1.TabIndex = 1; - this.comboBox1.SelectedValueChanged += new System.EventHandler(this.OnSelectSourceEntity); - this.comboBox1.DropDown += new System.EventHandler(this.AdjustWidthComboBox_DropDown); + this.cmb_SourceEntity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDown; + this.cmb_SourceEntity.AutoCompleteSource = AutoCompleteSource.ListItems; + this.cmb_SourceEntity.AutoCompleteMode = AutoCompleteMode.None; + this.cmb_SourceEntity.FormattingEnabled = true; + this.cmb_SourceEntity.Location = new System.Drawing.Point(79, 3); + this.cmb_SourceEntity.Name = "cmb_SourceEntity"; + this.cmb_SourceEntity.Size = new System.Drawing.Size(121, 21); + this.cmb_SourceEntity.TabIndex = 1; + this.cmb_SourceEntity.SelectedValueChanged += new System.EventHandler(this.OnSelectSourceEntity); + this.cmb_SourceEntity.DropDown += new System.EventHandler(this.AdjustWidthComboBox_DropDown); // // label2 // @@ -233,16 +235,18 @@ private void InitializeComponent() this.label2.TabIndex = 2; this.label2.Text = "Target Entity"; // - // comboBox2 + // cmb_TargetEntity // - this.comboBox2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.comboBox2.FormattingEnabled = true; - this.comboBox2.Location = new System.Drawing.Point(279, 3); - this.comboBox2.Name = "comboBox2"; - this.comboBox2.Size = new System.Drawing.Size(121, 21); - this.comboBox2.TabIndex = 3; - this.comboBox2.SelectedValueChanged += new System.EventHandler(this.OnSelectTargetEntity); - this.comboBox2.DropDown += new System.EventHandler(this.AdjustWidthComboBox_DropDown); + this.cmb_TargetEntity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDown; + this.cmb_TargetEntity.AutoCompleteSource = AutoCompleteSource.ListItems; + this.cmb_TargetEntity.AutoCompleteMode = AutoCompleteMode.None; + this.cmb_TargetEntity.FormattingEnabled = true; + this.cmb_TargetEntity.Location = new System.Drawing.Point(279, 3); + this.cmb_TargetEntity.Name = "cmb_TargetEntity"; + this.cmb_TargetEntity.Size = new System.Drawing.Size(121, 21); + this.cmb_TargetEntity.TabIndex = 3; + this.cmb_TargetEntity.SelectedValueChanged += new System.EventHandler(this.OnSelectTargetEntity); + this.cmb_TargetEntity.DropDown += new System.EventHandler(this.AdjustWidthComboBox_DropDown); // // button1 // @@ -451,9 +455,9 @@ private string GetDisplayLabel(Microsoft.Xrm.Sdk.Label label) private void OnSelectSourceEntity(object sender, EventArgs e) { - comboBox2.SelectedIndex = -1; + cmb_TargetEntity.SelectedIndex = -1; _entitiesDetailedSource.Clear(); - GetEntityMetadataFromServer(comboBox1.SelectedItem.ToString(), _entitiesDetailedSource, Service); + GetEntityMetadataFromServer(cmb_SourceEntity.SelectedItem.ToString(), _entitiesDetailedSource, Service); } private void OnCloneButtonClick(object sender, EventArgs e) @@ -463,8 +467,8 @@ private void OnCloneButtonClick(object sender, EventArgs e) var fieldsToClone = (from object checkedItem in checkedItems select ((ListViewItem)checkedItem).SubItems[1].Text) .ToList(); - var sourceEntity = (string)comboBox1.SelectedItem; - var targetEntity = (string)comboBox2.SelectedItem; + var sourceEntity = (string)cmb_SourceEntity.SelectedItem; + var targetEntity = (string)cmb_TargetEntity.SelectedItem; if (string.IsNullOrEmpty(sourceEntity) || string.IsNullOrEmpty(targetEntity)) { @@ -740,13 +744,13 @@ private void CloneBooleanAttribute(string sourceEntityName, string targetEntityN private void OnSelectTargetEntity(object sender, EventArgs e) { - if (comboBox1.SelectedIndex < 0) + if (cmb_SourceEntity.SelectedIndex < 0) MessageBox.Show("Please Choose Source Entity."); else { - if (comboBox2.SelectedItem != null) + if (cmb_TargetEntity.SelectedItem != null) { - GetEntityMetadataFromServer(comboBox2.SelectedItem.ToString(), _entitiesDetailedTarget, GetTargetService()); + GetEntityMetadataFromServer(cmb_TargetEntity.SelectedItem.ToString(), _entitiesDetailedTarget, GetTargetService()); } } } @@ -755,8 +759,8 @@ private void PopulateAttributeList() { listView1.Items.Clear(); - var sourceEntity = _entitiesDetailedSource.SingleOrDefault(en => en.LogicalName == (string)comboBox1.SelectedItem); - var targetEntity = _entitiesDetailedTarget.SingleOrDefault(en => en.LogicalName == (string)comboBox2.SelectedItem); + var sourceEntity = _entitiesDetailedSource.SingleOrDefault(en => en.LogicalName == (string)cmb_SourceEntity.SelectedItem); + var targetEntity = _entitiesDetailedTarget.SingleOrDefault(en => en.LogicalName == (string)cmb_TargetEntity.SelectedItem); if (sourceEntity == null || targetEntity == null) { From 51c5683642399c7590addbe1f88b3620f5686a0c Mon Sep 17 00:00:00 2001 From: Kevin Grech Date: Mon, 14 Apr 2025 12:46:28 +0200 Subject: [PATCH 3/3] Updated Packages, changed to .NET 4.8 to match latest XTB --- ...MsDyn.Contrib.CloneFieldDefinitions.csproj | 177 +++++++++++++++--- .../app.config | 36 +++- .../packages.config | 49 ++++- 3 files changed, 224 insertions(+), 38 deletions(-) diff --git a/src/lib/MsDyn.Contrib.CloneFieldDefinitions/MsDyn.Contrib.CloneFieldDefinitions.csproj b/src/lib/MsDyn.Contrib.CloneFieldDefinitions/MsDyn.Contrib.CloneFieldDefinitions.csproj index fab9f63..0a72fad 100644 --- a/src/lib/MsDyn.Contrib.CloneFieldDefinitions/MsDyn.Contrib.CloneFieldDefinitions.csproj +++ b/src/lib/MsDyn.Contrib.CloneFieldDefinitions/MsDyn.Contrib.CloneFieldDefinitions.csproj @@ -9,9 +9,11 @@ Properties MsDyn.Contrib.CloneFieldDefinitions MsDyn.Contrib.CloneFieldDefinitions - v4.6.2 + v4.8 512 + + true @@ -31,61 +33,172 @@ 4 - - ..\..\..\packages\MscrmTools.Xrm.Connection.1.2017.10.15\lib\net462\McTools.Xrm.Connection.dll + + ..\..\..\packages\MscrmTools.Xrm.Connection.1.2024.9.59\lib\net48\McTools.Xrm.Connection.dll - - ..\..\..\packages\MscrmTools.Xrm.Connection.1.2017.10.15\lib\net462\McTools.Xrm.Connection.WinForms.dll + + ..\..\..\packages\MscrmTools.Xrm.Connection.1.2024.9.59\lib\net48\McTools.Xrm.Connection.WinForms.dll + + + ..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.8.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll - ..\..\..\packages\Microsoft.CrmSdk.CoreAssemblies.9.0.0.5\lib\net452\Microsoft.Crm.Sdk.Proxy.dll + ..\..\..\packages\Microsoft.CrmSdk.CoreAssemblies.9.0.2.59\lib\net462\Microsoft.Crm.Sdk.Proxy.dll ..\..\..\packages\Microsoft.IdentityModel.6.1.7600.16394\lib\net35\Microsoft.IdentityModel.dll True - - ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.29.0\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.5.2.9\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + ..\..\..\packages\Microsoft.CrmSdk.XrmTooling.CoreAssembly.9.1.1.65\lib\net462\Microsoft.Rest.ClientRuntime.dll + + + ..\..\..\packages\Microsoft.Web.WebView2.1.0.1343.22\lib\net45\Microsoft.Web.WebView2.Core.dll + + + ..\..\..\packages\Microsoft.Web.WebView2.1.0.1343.22\lib\net45\Microsoft.Web.WebView2.WinForms.dll - - ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.29.0\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + + ..\..\..\packages\Microsoft.Web.WebView2.1.0.1343.22\lib\net45\Microsoft.Web.WebView2.Wpf.dll ..\..\..\packages\Microsoft.Web.Xdt.2.1.0\lib\net40\Microsoft.Web.XmlTransform.dll True - ..\..\..\packages\Microsoft.CrmSdk.CoreAssemblies.9.0.0.5\lib\net452\Microsoft.Xrm.Sdk.dll + ..\..\..\packages\Microsoft.CrmSdk.CoreAssemblies.9.0.2.59\lib\net462\Microsoft.Xrm.Sdk.dll - ..\..\..\packages\Microsoft.CrmSdk.Deployment.9.0.0.5\lib\net452\Microsoft.Xrm.Sdk.Deployment.dll + ..\..\..\packages\Microsoft.CrmSdk.Deployment.9.0.2.34\lib\net462\Microsoft.Xrm.Sdk.Deployment.dll - ..\..\..\packages\Microsoft.CrmSdk.Workflow.9.0.0.5\lib\net452\Microsoft.Xrm.Sdk.Workflow.dll + ..\..\..\packages\Microsoft.CrmSdk.Workflow.9.0.2.59\lib\net462\Microsoft.Xrm.Sdk.Workflow.dll + + + ..\..\..\packages\Microsoft.CrmSdk.XrmTooling.CoreAssembly.9.1.1.65\lib\net462\Microsoft.Xrm.Tooling.Connector.dll + + + ..\..\..\packages\Microsoft.CrmSdk.XrmTooling.WpfControls.9.1.1.65\lib\net462\Microsoft.Xrm.Tooling.CrmConnectControl.dll + + + ..\..\..\packages\Microsoft.CrmSdk.XrmTooling.WpfControls.9.1.1.65\lib\net462\Microsoft.Xrm.Tooling.Ui.Styles.dll - - ..\..\..\packages\Microsoft.CrmSdk.XrmTooling.CoreAssembly.9.0.0.5\lib\net452\Microsoft.Xrm.Tooling.Connector.dll + + ..\..\..\packages\Microsoft.CrmSdk.XrmTooling.WpfControls.9.1.1.65\lib\net462\Microsoft.Xrm.Tooling.WebResourceUtility.dll - - ..\..\..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll + + ..\..\..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll + + + ..\..\..\packages\NuGet.Common.5.9.3\lib\net472\NuGet.Common.dll + + + ..\..\..\packages\NuGet.Configuration.5.9.3\lib\net472\NuGet.Configuration.dll ..\..\..\packages\NuGet.Core.2.12.0\lib\net40-Client\NuGet.Core.dll + + ..\..\..\packages\NuGet.Frameworks.5.9.3\lib\net472\NuGet.Frameworks.dll + + + ..\..\..\packages\NuGet.Packaging.5.9.3\lib\net472\NuGet.Packaging.dll + + + ..\..\..\packages\NuGet.Protocol.5.9.3\lib\net472\NuGet.Protocol.dll + + + ..\..\..\packages\NuGet.Versioning.5.9.3\lib\net472\NuGet.Versioning.dll + + + ..\..\..\packages\jacobslusser.ScintillaNET.3.6.3\lib\net40\ScintillaNET.dll + + + ..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\..\..\packages\System.IO.4.3.0\lib\net462\System.IO.dll + True + True + + + + ..\..\..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll + + + + ..\..\..\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll + True + True + + + + + ..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll + True + True + + + ..\..\..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\..\..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll + True + True + + + ..\..\..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll + True + True + + + ..\..\..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll + True + True + + + ..\..\..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll + True + True + + + ..\..\..\packages\System.ServiceModel.Http.4.10.3\lib\net461\System.ServiceModel.Http.dll + + + ..\..\..\packages\System.ServiceModel.Primitives.4.10.3\lib\net461\System.ServiceModel.Primitives.dll + + + ..\..\..\packages\System.Text.Encodings.Web.8.0.0\lib\net462\System.Text.Encodings.Web.dll + + + ..\..\..\packages\System.Text.Json.8.0.5\lib\net462\System.Text.Json.dll + + + ..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + ..\..\..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll + @@ -96,16 +209,21 @@ - - - ..\..\..\packages\XrmToolBoxPackage.1.2018.1.20\lib\net462\XrmToolBox.exe + + ..\..\..\packages\DockPanelSuite.3.0.6\lib\net40\WeifenLuo.WinFormsUI.Docking.dll + + + ..\..\..\packages\DockPanelSuite.ThemeVS2015.3.0.6\lib\net40\WeifenLuo.WinFormsUI.Docking.ThemeVS2015.dll + + + ..\..\..\packages\XrmToolBoxPackage.1.2023.10.67\lib\net462\XrmToolBox.exe - - ..\..\..\packages\XrmToolBoxPackage.1.2018.1.20\lib\net462\XrmToolBox.Extensibility.dll + + ..\..\..\packages\XrmToolBoxPackage.1.2023.10.67\lib\net462\XrmToolBox.Extensibility.dll - - ..\..\..\packages\XrmToolBoxPackage.1.2018.1.20\lib\net462\XrmToolBox.PluginsStore.dll + + ..\..\..\packages\XrmToolBoxPackage.1.2023.10.67\lib\net462\XrmToolBox.ToolLibrary.dll @@ -131,6 +249,17 @@ + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + rem if $(ConfigurationName) == Debug mkdir Plugins +if $(ConfigurationName) == Debug move /Y $(TargetName).* Plugins +