/// <summary> /// Requests that the control finalize any edits that have been made by saving /// them from the UI controls to their backing objects. /// </summary> public override void FinalizeEdit() { // Modify focus so that any data bindings will update name_TextBox.Focus(); // Push the configuration data into the ExecutionPlan property of the metadata foreach (var item in _loadTester.VirtualResourceMetadataSet) { if (string.IsNullOrEmpty(item.ExecutionPlan)) { var configItem = _configurations.FirstOrDefault(e => e.Metadata.VirtualResourceMetadataId == item.VirtualResourceMetadataId); if (configItem != null) { item.ExecutionPlan = LegacySerializer.SerializeDataContract(configItem.ExecutionPlan).ToString(); } } else { // Entity Framework handles all situations where no fields have changed, except serialized XML. // So to ensure this form doesn't think something has changed when it hasn't, only update // the serialized XML if there is actually a change. XDocument oldPlan = XDocument.Parse(item.ExecutionPlan); var configItem = _configurations.FirstOrDefault(e => e.Metadata.VirtualResourceMetadataId == item.VirtualResourceMetadataId); if (configItem != null) { string serializedPlan = LegacySerializer.SerializeDataContract(configItem.ExecutionPlan).ToString(); XDocument newPlan = XDocument.Parse(serializedPlan); if (!XmlUtil.AreEqual(oldPlan, newPlan, orderInvariant: true)) { item.ExecutionPlan = serializedPlan; } } } } if (GlobalSettings.IsDistributedSystem) { // Need to grab the platform directly from the combobox _loadTester.Platform = ((FrameworkClientPlatform)virtualMachinePlatform_ComboBox.SelectedItem).FrameworkClientPlatformId; } }