diff --git a/BismNormalizer/BismNormalizer/Settings.Designer.cs b/BismNormalizer/BismNormalizer/Settings.Designer.cs
index 6cbd1ec..0a7a146 100644
--- a/BismNormalizer/BismNormalizer/Settings.Designer.cs
+++ b/BismNormalizer/BismNormalizer/Settings.Designer.cs
@@ -370,5 +370,17 @@ namespace BismNormalizer {
this["OptionRetainRoleMembers"] = value;
}
}
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("False")]
+ public bool OptionRetainRefreshPolicy {
+ get {
+ return ((bool)(this["OptionRetainRefreshPolicy"]));
+ }
+ set {
+ this["OptionRetainRefreshPolicy"] = value;
+ }
+ }
}
}
diff --git a/BismNormalizer/BismNormalizer/Settings.settings b/BismNormalizer/BismNormalizer/Settings.settings
index 0a7a010..5b96a72 100644
--- a/BismNormalizer/BismNormalizer/Settings.settings
+++ b/BismNormalizer/BismNormalizer/Settings.settings
@@ -89,5 +89,8 @@
False
+
+ False
+
\ No newline at end of file
diff --git a/BismNormalizer/BismNormalizer/TabularCompare/OptionsInfo.cs b/BismNormalizer/BismNormalizer/TabularCompare/OptionsInfo.cs
index 3b61b65..ff14e89 100644
--- a/BismNormalizer/BismNormalizer/TabularCompare/OptionsInfo.cs
+++ b/BismNormalizer/BismNormalizer/TabularCompare/OptionsInfo.cs
@@ -23,6 +23,7 @@ namespace BismNormalizer.TabularCompare
private bool _optionLineageTag;
private bool _optionRetainPartitions;
private bool _optionRetainPolicyPartitions;
+ private bool _optionRetainRefreshPolicy;
private bool _optionRetainStorageMode;
private bool _optionMeasureDependencies;
private ProcessingOption _optionProcessingOption;
@@ -45,6 +46,7 @@ namespace BismNormalizer.TabularCompare
_optionLineageTag = Settings.Default.OptionLineageTag;
_optionRetainPartitions = Settings.Default.OptionRetainPartitions;
_optionRetainPolicyPartitions = Settings.Default.OptionRetainPolicyPartitions;
+ _optionRetainRefreshPolicy = Settings.Default.OptionRetainRefreshPolicy;
_optionRetainStorageMode = Settings.Default.OptionRetainStorageMode;
_optionMeasureDependencies = Settings.Default.OptionMeasureDependencies;
_optionProcessingOption = (ProcessingOption)Enum.Parse(typeof(ProcessingOption), Settings.Default.OptionProcessingOption);
@@ -149,6 +151,15 @@ namespace BismNormalizer.TabularCompare
set { _optionRetainPolicyPartitions = value; }
}
+ ///
+ /// A Boolean specifying whether to retain incremental refresh policy.
+ ///
+ public bool OptionRetainRefreshPolicy
+ {
+ get { return _optionRetainRefreshPolicy; }
+ set { _optionRetainRefreshPolicy = value; }
+ }
+
///
/// A Boolean specifying whether to retain storage for table updates on composite models.
///
@@ -212,6 +223,7 @@ namespace BismNormalizer.TabularCompare
Settings.Default.OptionLineageTag = _optionLineageTag;
Settings.Default.OptionRetainPartitions = _optionRetainPartitions;
Settings.Default.OptionRetainPolicyPartitions = _optionRetainPolicyPartitions;
+ Settings.Default.OptionRetainRefreshPolicy = _optionRetainRefreshPolicy;
Settings.Default.OptionRetainStorageMode = _optionRetainStorageMode;
Settings.Default.OptionMeasureDependencies = _optionMeasureDependencies;
Settings.Default.OptionProcessingOption = _optionProcessingOption.ToString();
diff --git a/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Comparison.cs b/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Comparison.cs
index 7eab542..a978099 100644
--- a/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Comparison.cs
+++ b/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Comparison.cs
@@ -1052,7 +1052,9 @@ namespace BismNormalizer.TabularCompare.TabularMetadata
_targetTabularModel.CanRetainPartitions( //But also check if doing retain partitions on this table (if so, dependency will remain).
_sourceTabularModel.Tables.FindByName(comparisonObjectToCheck.TargetObjectName),
_targetTabularModel.Tables.FindByName(comparisonObjectToCheck.TargetObjectName),
- out string retainPartitionsMessage)
+ out string retainPartitionsMessage,
+ out PartitionSourceType partitionSourceTypeSource,
+ out PartitionSourceType partitionSourceTypeTarget)
)
) //Create table is not possible to have a dependency on this object about to be deleted. Delete table is fine.
)
@@ -1627,9 +1629,15 @@ namespace BismNormalizer.TabularCompare.TabularMetadata
List warningObjectList = new List();
bool fromDependencies = false;
bool nonStructuredDataSourceLocal = false;
+ bool canRetainPartitions =
+ _targetTabularModel.CanRetainPartitions(
+ tableSource, tableTarget,
+ out string retainPartitionsMessageTemp,
+ out PartitionSourceType partitionSourceTypeSource,
+ out PartitionSourceType partitionSourceTypeTarget);
//Will this table retain partitions? If yes, don't need to bother with source dependency (target dependency checking will cover for deletes).
- if (!_targetTabularModel.CanRetainPartitions(tableSource, tableTarget, out string retainPartitionsMessageTemp))
+ if (!canRetainPartitions)
{
//Check any objects in source that this table depends on are also going to be created/updated if not already in target
foreach (Partition partition in tableSource.TomTable.Partitions)
@@ -1661,8 +1669,20 @@ namespace BismNormalizer.TabularCompare.TabularMetadata
{
return;
};
- _targetTabularModel.UpdateTable(tableSource, tableTarget, out string retainPartitionsMessage);
- OnValidationMessage(new ValidationMessageEventArgs($"Update {(tableSource.IsCalculationGroup ? "calculation group" : "table")} '{comparisonObject.TargetObjectName}'. {retainPartitionsMessage}", ValidationMessageType.Table, ValidationMessageStatus.Informational));
+
+ //Check if, based on options selected, check if target table would contain policy based partitions with no refresh policy
+ if (
+ (canRetainPartitions && !_comparisonInfo.OptionsInfo.OptionRetainRefreshPolicy && partitionSourceTypeTarget == PartitionSourceType.PolicyRange && tableSource.TomTable.RefreshPolicy == null) ||
+ (!canRetainPartitions && _comparisonInfo.OptionsInfo.OptionRetainRefreshPolicy && partitionSourceTypeSource == PartitionSourceType.PolicyRange && tableTarget.TomTable.RefreshPolicy == null)
+ )
+ {
+ OnValidationMessage(new ValidationMessageEventArgs($"Unable to update table {comparisonObject.TargetObjectName} because, based on options selected, the resulting table would contain policy based partitions with no refresh policy, which is not allowed.", (tableSource.IsCalculationGroup ? ValidationMessageType.CalculationGroup : ValidationMessageType.Table), ValidationMessageStatus.Warning));
+ }
+ else
+ {
+ _targetTabularModel.UpdateTable(tableSource, tableTarget, out string retainPartitionsMessage);
+ OnValidationMessage(new ValidationMessageEventArgs($"Update {(tableSource.IsCalculationGroup ? "calculation group" : "table")} '{comparisonObject.TargetObjectName}'. {retainPartitionsMessage}", ValidationMessageType.Table, ValidationMessageStatus.Informational));
+ }
}
}
else
diff --git a/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/TabularModel.cs b/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/TabularModel.cs
index 21f114d..f7d941c 100644
--- a/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/TabularModel.cs
+++ b/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/TabularModel.cs
@@ -639,7 +639,12 @@ namespace BismNormalizer.TabularCompare.TabularMetadata
/// Table object in the target tabular model to be updated.
public void UpdateTable(Table tableSource, Table tableTarget, out string retainPartitionsMessage)
{
- bool canRetainPartitions = CanRetainPartitions(tableSource, tableTarget, out retainPartitionsMessage);
+ bool canRetainPartitions = CanRetainPartitions(
+ tableSource,
+ tableTarget,
+ out retainPartitionsMessage,
+ out PartitionSourceType partitionSourceTypeSource,
+ out PartitionSourceType partitionSourceTypeTarget);
Tom.Table tomTableTargetOrig = tableTarget.TomTable.Clone();
ModeType tableTargetModeType = tableTarget.TableModeType;
List tomRelationshipsToAddBack = DeleteTable(tableTarget.Name);
@@ -690,48 +695,61 @@ namespace BismNormalizer.TabularCompare.TabularMetadata
{
tableTarget.ResetStorageMode(tableTargetModeType);
}
+
+ //add back refresh policy if option selected
+ if (_comparisonInfo.OptionsInfo.OptionRetainRefreshPolicy)
+ {
+ if (tomTableTargetOrig.RefreshPolicy == null)
+ {
+ tableTarget.TomTable.RefreshPolicy = null;
+ }
+ else
+ {
+ tableTarget.TomTable.RefreshPolicy = tomTableTargetOrig.RefreshPolicy.Clone();
+ }
+ }
}
}
- public bool CanRetainPartitions(Table tableSource, Table tableTarget, out string retainPartitionsMessage)
+ public bool CanRetainPartitions(Table tableSource, Table tableTarget, out string retainPartitionsMessage, out PartitionSourceType partitionSourceTypeSource, out PartitionSourceType partitionSourceTypeTarget)
{
//Initialize variables
retainPartitionsMessage = "";
- PartitionSourceType sourceTypeSource = PartitionSourceType.None;
+ partitionSourceTypeSource = PartitionSourceType.None;
foreach (Partition partition in tableSource.TomTable.Partitions)
{
- sourceTypeSource = partition.SourceType;
+ partitionSourceTypeSource = partition.SourceType;
break;
}
- PartitionSourceType sourceTypeTarget = PartitionSourceType.None;
+ partitionSourceTypeTarget = PartitionSourceType.None;
foreach (Partition partitionTarget in tableTarget.TomTable.Partitions)
{
- sourceTypeTarget = partitionTarget.SourceType;
+ partitionSourceTypeTarget = partitionTarget.SourceType;
break;
}
//Verify necessary options are checked
if (!_comparisonInfo.OptionsInfo.OptionRetainPartitions)
return false;
- if (_comparisonInfo.OptionsInfo.OptionRetainPolicyPartitions && sourceTypeTarget != PartitionSourceType.PolicyRange)
+ if (_comparisonInfo.OptionsInfo.OptionRetainPolicyPartitions && partitionSourceTypeTarget != PartitionSourceType.PolicyRange)
return false;
//both tables need to have M or query partitions, or target can be policy partitions. Also type needs to match (won't copy query partition to M table). If a table has no partitions, do nothing.
- if (!(sourceTypeSource == PartitionSourceType.M || sourceTypeSource == PartitionSourceType.Query || sourceTypeSource == PartitionSourceType.PolicyRange))
+ if (!(partitionSourceTypeSource == PartitionSourceType.M || partitionSourceTypeSource == PartitionSourceType.Query || partitionSourceTypeSource == PartitionSourceType.PolicyRange))
{
retainPartitionsMessage = $"Retain partitions not applicable to partition types.";
return false;
}
- if (!(sourceTypeTarget == PartitionSourceType.M || sourceTypeTarget == PartitionSourceType.Query || sourceTypeTarget == PartitionSourceType.PolicyRange))
+ if (!(partitionSourceTypeTarget == PartitionSourceType.M || partitionSourceTypeTarget == PartitionSourceType.Query || partitionSourceTypeTarget == PartitionSourceType.PolicyRange))
{
retainPartitionsMessage = $"Retain partitions not applicable to partition types.";
return false;
}
- if ((sourceTypeTarget != sourceTypeSource) && sourceTypeTarget != PartitionSourceType.PolicyRange)
+ if (partitionSourceTypeTarget != partitionSourceTypeSource && !(partitionSourceTypeTarget == PartitionSourceType.M && partitionSourceTypeSource == PartitionSourceType.PolicyRange) && partitionSourceTypeTarget != PartitionSourceType.PolicyRange)
{
- retainPartitionsMessage = $"Retain partitions not applied because source partition type is {sourceTypeSource.ToString()} and target partition type is {sourceTypeTarget.ToString()}.";
+ retainPartitionsMessage = $"Retain partitions not applied because source partition type is {partitionSourceTypeSource.ToString()} and target partition type is {partitionSourceTypeTarget.ToString()}.";
return false;
}
diff --git a/BismNormalizer/BismNormalizer/TabularCompare/UI/Options.Designer.cs b/BismNormalizer/BismNormalizer/TabularCompare/UI/Options.Designer.cs
index 101b5b9..65604bf 100644
--- a/BismNormalizer/BismNormalizer/TabularCompare/UI/Options.Designer.cs
+++ b/BismNormalizer/BismNormalizer/TabularCompare/UI/Options.Designer.cs
@@ -35,6 +35,8 @@
this.chkMeasureDependencies = new System.Windows.Forms.CheckBox();
this.chkPerspectives = new System.Windows.Forms.CheckBox();
this.groupBox1 = new System.Windows.Forms.GroupBox();
+ this.chkRetainRefreshPolicy = new System.Windows.Forms.CheckBox();
+ this.chkRetainRoleMembers = new System.Windows.Forms.CheckBox();
this.chkLineageTag = new System.Windows.Forms.CheckBox();
this.chkRetainStorageMode = new System.Windows.Forms.CheckBox();
this.chkRetainPolicyPartitions = new System.Windows.Forms.CheckBox();
@@ -46,7 +48,6 @@
this.chkAffectedTables = new System.Windows.Forms.CheckBox();
this.cboProcessingOption = new System.Windows.Forms.ComboBox();
this.label1 = new System.Windows.Forms.Label();
- this.chkRetainRoleMembers = new System.Windows.Forms.CheckBox();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
this.SuspendLayout();
@@ -55,9 +56,10 @@
//
this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
- this.btnCancel.Location = new System.Drawing.Point(274, 489);
+ this.btnCancel.Location = new System.Drawing.Point(548, 991);
+ this.btnCancel.Margin = new System.Windows.Forms.Padding(6);
this.btnCancel.Name = "btnCancel";
- this.btnCancel.Size = new System.Drawing.Size(75, 23);
+ this.btnCancel.Size = new System.Drawing.Size(150, 44);
this.btnCancel.TabIndex = 21;
this.btnCancel.Text = "Cancel";
this.btnCancel.UseVisualStyleBackColor = true;
@@ -66,9 +68,10 @@
//
this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK;
- this.btnOK.Location = new System.Drawing.Point(194, 489);
+ this.btnOK.Location = new System.Drawing.Point(388, 991);
+ this.btnOK.Margin = new System.Windows.Forms.Padding(6);
this.btnOK.Name = "btnOK";
- this.btnOK.Size = new System.Drawing.Size(75, 23);
+ this.btnOK.Size = new System.Drawing.Size(150, 44);
this.btnOK.TabIndex = 20;
this.btnOK.Text = "OK";
this.btnOK.UseVisualStyleBackColor = true;
@@ -79,9 +82,10 @@
this.chkRoles.AutoSize = true;
this.chkRoles.Checked = true;
this.chkRoles.CheckState = System.Windows.Forms.CheckState.Checked;
- this.chkRoles.Location = new System.Drawing.Point(14, 121);
+ this.chkRoles.Location = new System.Drawing.Point(28, 233);
+ this.chkRoles.Margin = new System.Windows.Forms.Padding(6);
this.chkRoles.Name = "chkRoles";
- this.chkRoles.Size = new System.Drawing.Size(86, 17);
+ this.chkRoles.Size = new System.Drawing.Size(166, 29);
this.chkRoles.TabIndex = 5;
this.chkRoles.Text = "Include roles";
this.chkRoles.UseVisualStyleBackColor = true;
@@ -90,9 +94,10 @@
// chkPartitions
//
this.chkPartitions.AutoSize = true;
- this.chkPartitions.Location = new System.Drawing.Point(14, 172);
+ this.chkPartitions.Location = new System.Drawing.Point(28, 331);
+ this.chkPartitions.Margin = new System.Windows.Forms.Padding(6);
this.chkPartitions.Name = "chkPartitions";
- this.chkPartitions.Size = new System.Drawing.Size(224, 17);
+ this.chkPartitions.Size = new System.Drawing.Size(451, 29);
this.chkPartitions.TabIndex = 6;
this.chkPartitions.Text = "Consider partitions when comparing tables";
this.chkPartitions.UseVisualStyleBackColor = true;
@@ -104,9 +109,10 @@
this.chkMeasureDependencies.AutoSize = true;
this.chkMeasureDependencies.Checked = true;
this.chkMeasureDependencies.CheckState = System.Windows.Forms.CheckState.Checked;
- this.chkMeasureDependencies.Location = new System.Drawing.Point(14, 311);
+ this.chkMeasureDependencies.Location = new System.Drawing.Point(28, 655);
+ this.chkMeasureDependencies.Margin = new System.Windows.Forms.Padding(6);
this.chkMeasureDependencies.Name = "chkMeasureDependencies";
- this.chkMeasureDependencies.Size = new System.Drawing.Size(47, 17);
+ this.chkMeasureDependencies.Size = new System.Drawing.Size(86, 29);
this.chkMeasureDependencies.TabIndex = 7;
this.chkMeasureDependencies.Text = "XXX";
this.chkMeasureDependencies.UseVisualStyleBackColor = true;
@@ -114,9 +120,10 @@
// chkPerspectives
//
this.chkPerspectives.AutoSize = true;
- this.chkPerspectives.Location = new System.Drawing.Point(14, 24);
+ this.chkPerspectives.Location = new System.Drawing.Point(28, 46);
+ this.chkPerspectives.Margin = new System.Windows.Forms.Padding(6);
this.chkPerspectives.Name = "chkPerspectives";
- this.chkPerspectives.Size = new System.Drawing.Size(124, 17);
+ this.chkPerspectives.Size = new System.Drawing.Size(241, 29);
this.chkPerspectives.TabIndex = 3;
this.chkPerspectives.Text = "Include perspectives";
this.chkPerspectives.UseVisualStyleBackColor = true;
@@ -127,6 +134,7 @@
this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
+ this.groupBox1.Controls.Add(this.chkRetainRefreshPolicy);
this.groupBox1.Controls.Add(this.chkRetainRoleMembers);
this.groupBox1.Controls.Add(this.chkLineageTag);
this.groupBox1.Controls.Add(this.chkRetainStorageMode);
@@ -139,19 +147,46 @@
this.groupBox1.Controls.Add(this.chkMeasureDependencies);
this.groupBox1.Controls.Add(this.chkPartitions);
this.groupBox1.Controls.Add(this.chkRoles);
- this.groupBox1.Location = new System.Drawing.Point(12, 11);
+ this.groupBox1.Location = new System.Drawing.Point(24, 21);
+ this.groupBox1.Margin = new System.Windows.Forms.Padding(6);
this.groupBox1.Name = "groupBox1";
- this.groupBox1.Size = new System.Drawing.Size(338, 358);
+ this.groupBox1.Padding = new System.Windows.Forms.Padding(6);
+ this.groupBox1.Size = new System.Drawing.Size(676, 739);
this.groupBox1.TabIndex = 22;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Comparison Options";
//
+ // chkRetainRefreshPolicy
+ //
+ this.chkRetainRefreshPolicy.AutoSize = true;
+ this.chkRetainRefreshPolicy.Location = new System.Drawing.Point(28, 552);
+ this.chkRetainRefreshPolicy.Margin = new System.Windows.Forms.Padding(6);
+ this.chkRetainRefreshPolicy.Name = "chkRetainRefreshPolicy";
+ this.chkRetainRefreshPolicy.Size = new System.Drawing.Size(413, 29);
+ this.chkRetainRefreshPolicy.TabIndex = 15;
+ this.chkRetainRefreshPolicy.Text = "For table updates, retain refresh policy";
+ this.chkRetainRefreshPolicy.UseVisualStyleBackColor = true;
+ //
+ // chkRetainRoleMembers
+ //
+ this.chkRetainRoleMembers.AutoSize = true;
+ this.chkRetainRoleMembers.Checked = true;
+ this.chkRetainRoleMembers.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.chkRetainRoleMembers.Location = new System.Drawing.Point(68, 277);
+ this.chkRetainRoleMembers.Margin = new System.Windows.Forms.Padding(6);
+ this.chkRetainRoleMembers.Name = "chkRetainRoleMembers";
+ this.chkRetainRoleMembers.Size = new System.Drawing.Size(361, 29);
+ this.chkRetainRoleMembers.TabIndex = 14;
+ this.chkRetainRoleMembers.Text = "For role updates, retain members";
+ this.chkRetainRoleMembers.UseVisualStyleBackColor = true;
+ //
// chkLineageTag
//
this.chkLineageTag.AutoSize = true;
- this.chkLineageTag.Location = new System.Drawing.Point(14, 203);
+ this.chkLineageTag.Location = new System.Drawing.Point(28, 390);
+ this.chkLineageTag.Margin = new System.Windows.Forms.Padding(6);
this.chkLineageTag.Name = "chkLineageTag";
- this.chkLineageTag.Size = new System.Drawing.Size(208, 17);
+ this.chkLineageTag.Size = new System.Drawing.Size(413, 29);
this.chkLineageTag.TabIndex = 13;
this.chkLineageTag.Text = "Consider LineageTag when comparing";
this.chkLineageTag.UseVisualStyleBackColor = true;
@@ -159,9 +194,10 @@
// chkRetainStorageMode
//
this.chkRetainStorageMode.AutoSize = true;
- this.chkRetainStorageMode.Location = new System.Drawing.Point(14, 285);
+ this.chkRetainStorageMode.Location = new System.Drawing.Point(28, 605);
+ this.chkRetainStorageMode.Margin = new System.Windows.Forms.Padding(6);
this.chkRetainStorageMode.Name = "chkRetainStorageMode";
- this.chkRetainStorageMode.Size = new System.Drawing.Size(207, 17);
+ this.chkRetainStorageMode.Size = new System.Drawing.Size(415, 29);
this.chkRetainStorageMode.TabIndex = 12;
this.chkRetainStorageMode.Text = "For table updates, retain storage mode";
this.chkRetainStorageMode.UseVisualStyleBackColor = true;
@@ -170,9 +206,10 @@
//
this.chkRetainPolicyPartitions.AutoSize = true;
this.chkRetainPolicyPartitions.Enabled = false;
- this.chkRetainPolicyPartitions.Location = new System.Drawing.Point(34, 256);
+ this.chkRetainPolicyPartitions.Location = new System.Drawing.Point(68, 492);
+ this.chkRetainPolicyPartitions.Margin = new System.Windows.Forms.Padding(6);
this.chkRetainPolicyPartitions.Name = "chkRetainPolicyPartitions";
- this.chkRetainPolicyPartitions.Size = new System.Drawing.Size(221, 17);
+ this.chkRetainPolicyPartitions.Size = new System.Drawing.Size(447, 29);
this.chkRetainPolicyPartitions.TabIndex = 11;
this.chkRetainPolicyPartitions.Text = "Retain only refresh-policy based partitions";
this.chkRetainPolicyPartitions.UseVisualStyleBackColor = true;
@@ -180,9 +217,10 @@
// chkRetainPartitions
//
this.chkRetainPartitions.AutoSize = true;
- this.chkRetainPartitions.Location = new System.Drawing.Point(14, 235);
+ this.chkRetainPartitions.Location = new System.Drawing.Point(28, 452);
+ this.chkRetainPartitions.Margin = new System.Windows.Forms.Padding(6);
this.chkRetainPartitions.Name = "chkRetainPartitions";
- this.chkRetainPartitions.Size = new System.Drawing.Size(185, 17);
+ this.chkRetainPartitions.Size = new System.Drawing.Size(372, 29);
this.chkRetainPartitions.TabIndex = 10;
this.chkRetainPartitions.Text = "For table updates, retain partitions";
this.chkRetainPartitions.UseVisualStyleBackColor = true;
@@ -192,9 +230,10 @@
//
this.chkMergeCultures.AutoSize = true;
this.chkMergeCultures.Enabled = false;
- this.chkMergeCultures.Location = new System.Drawing.Point(34, 96);
+ this.chkMergeCultures.Location = new System.Drawing.Point(68, 185);
+ this.chkMergeCultures.Margin = new System.Windows.Forms.Padding(6);
this.chkMergeCultures.Name = "chkMergeCultures";
- this.chkMergeCultures.Size = new System.Drawing.Size(270, 17);
+ this.chkMergeCultures.Size = new System.Drawing.Size(546, 29);
this.chkMergeCultures.TabIndex = 9;
this.chkMergeCultures.Text = "For culture updates, merge translations (not replace)";
this.chkMergeCultures.UseVisualStyleBackColor = true;
@@ -202,9 +241,10 @@
// chkCultures
//
this.chkCultures.AutoSize = true;
- this.chkCultures.Location = new System.Drawing.Point(14, 75);
+ this.chkCultures.Location = new System.Drawing.Point(28, 144);
+ this.chkCultures.Margin = new System.Windows.Forms.Padding(6);
this.chkCultures.Name = "chkCultures";
- this.chkCultures.Size = new System.Drawing.Size(101, 17);
+ this.chkCultures.Size = new System.Drawing.Size(195, 29);
this.chkCultures.TabIndex = 8;
this.chkCultures.Text = "Include cultures";
this.chkCultures.UseVisualStyleBackColor = true;
@@ -214,9 +254,10 @@
//
this.chkMergePerspectives.AutoSize = true;
this.chkMergePerspectives.Enabled = false;
- this.chkMergePerspectives.Location = new System.Drawing.Point(34, 46);
+ this.chkMergePerspectives.Location = new System.Drawing.Point(68, 88);
+ this.chkMergePerspectives.Margin = new System.Windows.Forms.Padding(6);
this.chkMergePerspectives.Name = "chkMergePerspectives";
- this.chkMergePerspectives.Size = new System.Drawing.Size(287, 17);
+ this.chkMergePerspectives.Size = new System.Drawing.Size(578, 29);
this.chkMergePerspectives.TabIndex = 4;
this.chkMergePerspectives.Text = "For perspective updates, merge selections (not replace)";
this.chkMergePerspectives.UseVisualStyleBackColor = true;
@@ -228,9 +269,11 @@
this.groupBox2.Controls.Add(this.chkAffectedTables);
this.groupBox2.Controls.Add(this.cboProcessingOption);
this.groupBox2.Controls.Add(this.label1);
- this.groupBox2.Location = new System.Drawing.Point(12, 376);
+ this.groupBox2.Location = new System.Drawing.Point(24, 774);
+ this.groupBox2.Margin = new System.Windows.Forms.Padding(6);
this.groupBox2.Name = "groupBox2";
- this.groupBox2.Size = new System.Drawing.Size(338, 101);
+ this.groupBox2.Padding = new System.Windows.Forms.Padding(6);
+ this.groupBox2.Size = new System.Drawing.Size(676, 194);
this.groupBox2.TabIndex = 23;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "Database Deployment";
@@ -240,9 +283,10 @@
this.chkAffectedTables.AutoSize = true;
this.chkAffectedTables.Checked = true;
this.chkAffectedTables.CheckState = System.Windows.Forms.CheckState.Checked;
- this.chkAffectedTables.Location = new System.Drawing.Point(14, 63);
+ this.chkAffectedTables.Location = new System.Drawing.Point(28, 121);
+ this.chkAffectedTables.Margin = new System.Windows.Forms.Padding(6);
this.chkAffectedTables.Name = "chkAffectedTables";
- this.chkAffectedTables.Size = new System.Drawing.Size(159, 17);
+ this.chkAffectedTables.Size = new System.Drawing.Size(315, 29);
this.chkAffectedTables.TabIndex = 9;
this.chkAffectedTables.Text = "Process only affected tables";
this.chkAffectedTables.UseVisualStyleBackColor = true;
@@ -257,44 +301,35 @@
"Default",
"Do Not Process",
"Full"});
- this.cboProcessingOption.Location = new System.Drawing.Point(114, 24);
+ this.cboProcessingOption.Location = new System.Drawing.Point(228, 46);
+ this.cboProcessingOption.Margin = new System.Windows.Forms.Padding(6);
this.cboProcessingOption.Name = "cboProcessingOption";
- this.cboProcessingOption.Size = new System.Drawing.Size(131, 21);
+ this.cboProcessingOption.Size = new System.Drawing.Size(258, 33);
this.cboProcessingOption.TabIndex = 8;
//
// label1
//
this.label1.AutoSize = true;
- this.label1.Location = new System.Drawing.Point(12, 28);
+ this.label1.Location = new System.Drawing.Point(24, 54);
+ this.label1.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(96, 13);
+ this.label1.Size = new System.Drawing.Size(194, 25);
this.label1.TabIndex = 0;
this.label1.Text = "Processing Option:";
//
- // chkRetainRoleMembers
- //
- this.chkRetainRoleMembers.AutoSize = true;
- this.chkRetainRoleMembers.Checked = true;
- this.chkRetainRoleMembers.CheckState = System.Windows.Forms.CheckState.Checked;
- this.chkRetainRoleMembers.Location = new System.Drawing.Point(34, 144);
- this.chkRetainRoleMembers.Name = "chkRetainRoleMembers";
- this.chkRetainRoleMembers.Size = new System.Drawing.Size(179, 17);
- this.chkRetainRoleMembers.TabIndex = 14;
- this.chkRetainRoleMembers.Text = "For role updates, retain members";
- this.chkRetainRoleMembers.UseVisualStyleBackColor = true;
- //
// Options
//
this.AcceptButton = this.btnOK;
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 25F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.btnCancel;
- this.ClientSize = new System.Drawing.Size(362, 528);
+ this.ClientSize = new System.Drawing.Size(724, 1066);
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.btnCancel);
this.Controls.Add(this.btnOK);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+ this.Margin = new System.Windows.Forms.Padding(6);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "Options";
@@ -332,5 +367,6 @@
private System.Windows.Forms.CheckBox chkRetainStorageMode;
private System.Windows.Forms.CheckBox chkLineageTag;
private System.Windows.Forms.CheckBox chkRetainRoleMembers;
+ private System.Windows.Forms.CheckBox chkRetainRefreshPolicy;
}
}
\ No newline at end of file
diff --git a/BismNormalizer/BismNormalizer/TabularCompare/UI/Options.cs b/BismNormalizer/BismNormalizer/TabularCompare/UI/Options.cs
index 22426a6..849597f 100644
--- a/BismNormalizer/BismNormalizer/TabularCompare/UI/Options.cs
+++ b/BismNormalizer/BismNormalizer/TabularCompare/UI/Options.cs
@@ -53,6 +53,7 @@ namespace BismNormalizer.TabularCompare.UI
chkLineageTag.Checked = _comparisonInfo.OptionsInfo.OptionLineageTag;
chkRetainPartitions.Checked = _comparisonInfo.OptionsInfo.OptionRetainPartitions;
chkRetainPolicyPartitions.Checked = _comparisonInfo.OptionsInfo.OptionRetainPolicyPartitions;
+ chkRetainRefreshPolicy.Checked = _comparisonInfo.OptionsInfo.OptionRetainRefreshPolicy;
chkRetainStorageMode.Checked = _comparisonInfo.OptionsInfo.OptionRetainStorageMode;
chkMeasureDependencies.Checked = _comparisonInfo.OptionsInfo.OptionMeasureDependencies;
string processingOption = _comparisonInfo.OptionsInfo.OptionProcessingOption.ToString();
@@ -73,6 +74,7 @@ namespace BismNormalizer.TabularCompare.UI
_comparisonInfo.OptionsInfo.OptionLineageTag = chkLineageTag.Checked;
_comparisonInfo.OptionsInfo.OptionRetainPartitions = chkRetainPartitions.Checked;
_comparisonInfo.OptionsInfo.OptionRetainPolicyPartitions = chkRetainPolicyPartitions.Checked;
+ _comparisonInfo.OptionsInfo.OptionRetainRefreshPolicy = chkRetainRefreshPolicy.Checked;
_comparisonInfo.OptionsInfo.OptionRetainStorageMode = chkRetainStorageMode.Checked;
_comparisonInfo.OptionsInfo.OptionMeasureDependencies = chkMeasureDependencies.Checked;
_comparisonInfo.OptionsInfo.OptionProcessingOption = (ProcessingOption)Enum.Parse(typeof(ProcessingOption), cboProcessingOption.Text.Replace(" ", ""));
diff --git a/BismNormalizer/BismNormalizer/app.config b/BismNormalizer/BismNormalizer/app.config
index 4dbefdf..21cacd0 100644
--- a/BismNormalizer/BismNormalizer/app.config
+++ b/BismNormalizer/BismNormalizer/app.config
@@ -94,6 +94,9 @@
False
+
+ False
+