diff --git a/BismNormalizer/AlmToolkit/Program.cs b/BismNormalizer/AlmToolkit/Program.cs
index 7e00369..9fc1b3a 100644
--- a/BismNormalizer/AlmToolkit/Program.cs
+++ b/BismNormalizer/AlmToolkit/Program.cs
@@ -33,6 +33,9 @@ namespace AlmToolkit
}
catch { }
+ // Default web requests like AAD Auth to use windows credentials for proxy auth
+ System.Net.WebRequest.DefaultWebProxy.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
+
if (args != null && args.Length > 0)
{
if (args.Length > 1)
diff --git a/BismNormalizer/AlmToolkit/Properties/AssemblyInfo.cs b/BismNormalizer/AlmToolkit/Properties/AssemblyInfo.cs
index 8b478c9..a804795 100644
--- a/BismNormalizer/AlmToolkit/Properties/AssemblyInfo.cs
+++ b/BismNormalizer/AlmToolkit/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("5.0.14.1")]
-[assembly: AssemblyFileVersion("5.0.14.1")]
+[assembly: AssemblyVersion("5.0.19.0")]
+[assembly: AssemblyFileVersion("5.0.19.0")]
diff --git a/BismNormalizer/AlmToolkitSetup/AlmToolkitSetup.vdproj b/BismNormalizer/AlmToolkitSetup/AlmToolkitSetup.vdproj
index ff5cc66..f30674b 100644
--- a/BismNormalizer/AlmToolkitSetup/AlmToolkitSetup.vdproj
+++ b/BismNormalizer/AlmToolkitSetup/AlmToolkitSetup.vdproj
@@ -2758,7 +2758,7 @@
{
"Name" = "8:.NET Framework"
"Message" = "8:[VSDNETMSG]"
- "FrameworkVersion" = "8:v4.6.1 "
+ "FrameworkVersion" = "8:v4.6.1 "
"AllowLaterVersions" = "11:FALSE"
"InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=671728"
}
@@ -2770,7 +2770,7 @@
{
"AssemblyRegister" = "3:1"
"AssemblyIsInGAC" = "11:FALSE"
- "AssemblyAsmDisplayName" = "8:BismNormalizer, Version=5.0.13.0, Culture=neutral, PublicKeyToken=aa6675aad991a644, processorArchitecture=MSIL"
+ "AssemblyAsmDisplayName" = "8:BismNormalizer, Version=5.0.19.0, Culture=neutral, PublicKeyToken=aa6675aad991a644, processorArchitecture=MSIL"
"ScatterAssemblies"
{
"_0020EC0A2900F50F0F5DCC3E7BBE4237"
@@ -5517,7 +5517,7 @@
{
"AssemblyRegister" = "3:1"
"AssemblyIsInGAC" = "11:FALSE"
- "AssemblyAsmDisplayName" = "8:Microsoft.AnalysisServices.Tabular, Version=19.10.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL"
+ "AssemblyAsmDisplayName" = "8:Microsoft.AnalysisServices.Tabular, Version=19.12.7.2, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL"
"ScatterAssemblies"
{
"_7344099411A9D2DBF4A784E3DE9EA77D"
@@ -6052,7 +6052,7 @@
{
"AssemblyRegister" = "3:1"
"AssemblyIsInGAC" = "11:FALSE"
- "AssemblyAsmDisplayName" = "8:Microsoft.AnalysisServices.Tabular.Json, Version=19.10.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL"
+ "AssemblyAsmDisplayName" = "8:Microsoft.AnalysisServices.Tabular.Json, Version=19.12.7.2, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL"
"ScatterAssemblies"
{
"_82DAFE8276E3EAF6338E99A4D478878D"
@@ -8283,7 +8283,7 @@
{
"AssemblyRegister" = "3:1"
"AssemblyIsInGAC" = "11:FALSE"
- "AssemblyAsmDisplayName" = "8:Microsoft.AnalysisServices.Core, Version=19.10.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL"
+ "AssemblyAsmDisplayName" = "8:Microsoft.AnalysisServices.Core, Version=19.12.7.2, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL"
"ScatterAssemblies"
{
"_E6C48E30804B563751F799BDB82D2D5F"
@@ -8505,7 +8505,7 @@
{
"AssemblyRegister" = "3:1"
"AssemblyIsInGAC" = "11:FALSE"
- "AssemblyAsmDisplayName" = "8:Microsoft.AnalysisServices, Version=19.10.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL"
+ "AssemblyAsmDisplayName" = "8:Microsoft.AnalysisServices, Version=19.12.7.2, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL"
"ScatterAssemblies"
{
"_EEEF3B4DA37D965DCA452A1E7B283C82"
@@ -8636,7 +8636,7 @@
{
"AssemblyRegister" = "3:1"
"AssemblyIsInGAC" = "11:FALSE"
- "AssemblyAsmDisplayName" = "8:Microsoft.AnalysisServices.SPClient.Interfaces, Version=19.10.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL"
+ "AssemblyAsmDisplayName" = "8:Microsoft.AnalysisServices.SPClient.Interfaces, Version=19.12.7.2, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL"
"ScatterAssemblies"
{
"_F27EC43FC3B12703E1AC626345868C2F"
@@ -9173,15 +9173,15 @@
{
"Name" = "8:Microsoft Visual Studio"
"ProductName" = "8:Power BI ALM Toolkit"
- "ProductCode" = "8:{2E0BDA2B-E9E8-4EB5-8457-D605A99AE425}"
- "PackageCode" = "8:{7DC33FCE-CA0B-49E6-8D38-925D0F3A6BD4}"
+ "ProductCode" = "8:{B6710539-C113-440C-AF14-CA2C17D9A5B0}"
+ "PackageCode" = "8:{7B4467F7-6352-49FC-A54E-AB68E6890C88}"
"UpgradeCode" = "8:{96819CFD-6462-4AD1-ADB4-7903F30ADB92}"
"AspNetVersion" = "8:4.0.30319.0"
"RestartWWWService" = "11:FALSE"
"RemovePreviousVersions" = "11:TRUE"
"DetectNewerInstalledVersion" = "11:TRUE"
"InstallAllUsers" = "11:TRUE"
- "ProductVersion" = "8:5.0.14"
+ "ProductVersion" = "8:5.0.19"
"Manufacturer" = "8:Power BI ALM Toolkit"
"ARPHELPTELEPHONE" = "8:"
"ARPHELPLINK" = "8:"
diff --git a/BismNormalizer/BismNormalizer.CommandLine/Properties/AssemblyInfo.cs b/BismNormalizer/BismNormalizer.CommandLine/Properties/AssemblyInfo.cs
index 1922660..e4e3774 100644
--- a/BismNormalizer/BismNormalizer.CommandLine/Properties/AssemblyInfo.cs
+++ b/BismNormalizer/BismNormalizer.CommandLine/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("5.0.14.1")]
-[assembly: AssemblyFileVersion("5.0.14.1")]
+[assembly: AssemblyVersion("5.0.19.0")]
+[assembly: AssemblyFileVersion("5.0.19.0")]
diff --git a/BismNormalizer/BismNormalizer.IconSetup/Properties/AssemblyInfo.cs b/BismNormalizer/BismNormalizer.IconSetup/Properties/AssemblyInfo.cs
index 985d673..aa548f6 100644
--- a/BismNormalizer/BismNormalizer.IconSetup/Properties/AssemblyInfo.cs
+++ b/BismNormalizer/BismNormalizer.IconSetup/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("5.0.14.1")]
-[assembly: AssemblyFileVersion("5.0.14.1")]
+[assembly: AssemblyVersion("5.0.19.0")]
+[assembly: AssemblyFileVersion("5.0.19.0")]
diff --git a/BismNormalizer/BismNormalizer/BismNormalizer.IconSetup.exe b/BismNormalizer/BismNormalizer/BismNormalizer.IconSetup.exe
index ac4f108..a222d47 100644
Binary files a/BismNormalizer/BismNormalizer/BismNormalizer.IconSetup.exe and b/BismNormalizer/BismNormalizer/BismNormalizer.IconSetup.exe differ
diff --git a/BismNormalizer/BismNormalizer/BismNormalizer.exe b/BismNormalizer/BismNormalizer/BismNormalizer.exe
index ce9b132..8ad763c 100644
Binary files a/BismNormalizer/BismNormalizer/BismNormalizer.exe and b/BismNormalizer/BismNormalizer/BismNormalizer.exe differ
diff --git a/BismNormalizer/BismNormalizer/Properties/AssemblyInfo.cs b/BismNormalizer/BismNormalizer/Properties/AssemblyInfo.cs
index 5bb9df2..df42423 100644
--- a/BismNormalizer/BismNormalizer/Properties/AssemblyInfo.cs
+++ b/BismNormalizer/BismNormalizer/Properties/AssemblyInfo.cs
@@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("5.0.14.1")]
-[assembly: AssemblyFileVersion("5.0.14.1")]
+[assembly: AssemblyVersion("5.0.19.0")]
+[assembly: AssemblyFileVersion("5.0.19.0")]
diff --git a/BismNormalizer/BismNormalizer/Settings.Designer.cs b/BismNormalizer/BismNormalizer/Settings.Designer.cs
index dc61f6c..47e46a1 100644
--- a/BismNormalizer/BismNormalizer/Settings.Designer.cs
+++ b/BismNormalizer/BismNormalizer/Settings.Designer.cs
@@ -12,7 +12,7 @@ namespace BismNormalizer {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.4.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")]
public sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
@@ -346,5 +346,17 @@ namespace BismNormalizer {
this["UpgradeRequired"] = value;
}
}
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("True")]
+ public bool OptionLineageTag {
+ get {
+ return ((bool)(this["OptionLineageTag"]));
+ }
+ set {
+ this["OptionLineageTag"] = value;
+ }
+ }
}
}
diff --git a/BismNormalizer/BismNormalizer/Settings.settings b/BismNormalizer/BismNormalizer/Settings.settings
index e1cebae..4c7274b 100644
--- a/BismNormalizer/BismNormalizer/Settings.settings
+++ b/BismNormalizer/BismNormalizer/Settings.settings
@@ -83,5 +83,8 @@
True
+
+ True
+
\ No newline at end of file
diff --git a/BismNormalizer/BismNormalizer/TabularCompare/OptionsInfo.cs b/BismNormalizer/BismNormalizer/TabularCompare/OptionsInfo.cs
index 242de52..a01edcd 100644
--- a/BismNormalizer/BismNormalizer/TabularCompare/OptionsInfo.cs
+++ b/BismNormalizer/BismNormalizer/TabularCompare/OptionsInfo.cs
@@ -19,6 +19,7 @@ namespace BismNormalizer.TabularCompare
private bool _optionRoles;
private bool _optionActions;
private bool _optionPartitions;
+ private bool _optionLineageTag;
private bool _optionRetainPartitions;
private bool _optionRetainPolicyPartitions;
private bool _optionRetainStorageMode;
@@ -39,6 +40,7 @@ namespace BismNormalizer.TabularCompare
_optionRoles = Settings.Default.OptionRoles;
_optionActions = Settings.Default.OptionActions;
_optionPartitions = Settings.Default.OptionPartitions;
+ _optionLineageTag = Settings.Default.OptionLineageTag;
_optionRetainPartitions = Settings.Default.OptionRetainPartitions;
_optionRetainPolicyPartitions = Settings.Default.OptionRetainPolicyPartitions;
_optionRetainStorageMode = Settings.Default.OptionRetainStorageMode;
@@ -112,6 +114,15 @@ namespace BismNormalizer.TabularCompare
set { _optionPartitions = value; }
}
+ ///
+ /// A Boolean specifying whether to consider LineageTag when comparing objects.
+ ///
+ public bool OptionLineageTag
+ {
+ get { return _optionLineageTag; }
+ set { _optionLineageTag = value; }
+ }
+
///
/// A Boolean specifying whether to retain partitions for table updates.
///
@@ -189,6 +200,7 @@ namespace BismNormalizer.TabularCompare
Settings.Default.OptionRoles = _optionRoles;
Settings.Default.OptionActions = _optionActions;
Settings.Default.OptionPartitions = _optionPartitions;
+ Settings.Default.OptionLineageTag = _optionLineageTag;
Settings.Default.OptionRetainPartitions = _optionRetainPartitions;
Settings.Default.OptionRetainPolicyPartitions = _optionRetainPolicyPartitions;
Settings.Default.OptionRetainStorageMode = _optionRetainStorageMode;
diff --git a/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/CalculationItem.cs b/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/CalculationItem.cs
index a135a42..d4fd0d2 100644
--- a/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/CalculationItem.cs
+++ b/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/CalculationItem.cs
@@ -23,7 +23,7 @@ namespace BismNormalizer.TabularCompare.TabularMetadata
/// Table object that the calculationItem belongs to.
/// Tabular Object Model CalculationItem object abtstracted by the CalculationItem class.
/// Indicates whether the calculationItem is a KPI.
- public CalculationItem(Table parentTable, Tom.CalculationItem tomCalculationItem) : base(tomCalculationItem)
+ public CalculationItem(Table parentTable, Tom.CalculationItem tomCalculationItem) : base(tomCalculationItem, parentTable.ParentTabularModel)
{
_parentTable = parentTable;
_tomCalculationItem = tomCalculationItem;
diff --git a/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Culture.cs b/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Culture.cs
index 619adda..7aaf9f2 100644
--- a/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Culture.cs
+++ b/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Culture.cs
@@ -22,7 +22,7 @@ namespace BismNormalizer.TabularCompare.TabularMetadata
///
/// TabularModel object that the Culture object belongs to.
/// Tabular Object Model Culture object abtstracted by the Culture class.
- public Culture(TabularModel parentTabularModel, Tom.Culture tomCulture) : base(tomCulture)
+ public Culture(TabularModel parentTabularModel, Tom.Culture tomCulture) : base(tomCulture, parentTabularModel)
{
_parentTabularModel = parentTabularModel;
_tomCulture = tomCulture;
diff --git a/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/DataSource.cs b/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/DataSource.cs
index 07d4da2..6bbfeba 100644
--- a/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/DataSource.cs
+++ b/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/DataSource.cs
@@ -18,7 +18,7 @@ namespace BismNormalizer.TabularCompare.TabularMetadata
///
/// TabularModel object that the DataSource object belongs to.
/// Tabular Object Model ProviderDataSource object abtstracted by the DataSource class.
- public DataSource(TabularModel parentTabularModel, Microsoft.AnalysisServices.Tabular.DataSource dataSource) : base(dataSource)
+ public DataSource(TabularModel parentTabularModel, Microsoft.AnalysisServices.Tabular.DataSource dataSource) : base(dataSource, parentTabularModel)
{
_parentTabularModel = parentTabularModel;
_tomDataSource = dataSource;
diff --git a/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Expression.cs b/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Expression.cs
index b25c1ec..02fb499 100644
--- a/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Expression.cs
+++ b/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Expression.cs
@@ -15,7 +15,7 @@ namespace BismNormalizer.TabularCompare.TabularMetadata
///
/// TabularModel object that the Expression object belongs to.
/// Tabular Object Model Expression object abtstracted by the Expression class.
- public Expression(TabularModel parentTabularModel, NamedExpression expression) : base(expression)
+ public Expression(TabularModel parentTabularModel, NamedExpression expression) : base(expression, parentTabularModel)
{
_parentTabularModel = parentTabularModel;
_tomExpression = expression;
diff --git a/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Measure.cs b/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Measure.cs
index 811dd0a..ff1effc 100644
--- a/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Measure.cs
+++ b/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Measure.cs
@@ -24,7 +24,7 @@ namespace BismNormalizer.TabularCompare.TabularMetadata
/// Table object that the measure belongs to.
/// Tabular Object Model Measure object abtstracted by the Measure class.
/// Indicates whether the measure is a KPI.
- public Measure(Table parentTable, Tom.Measure tomMeasure, bool isKpi) : base(tomMeasure)
+ public Measure(Table parentTable, Tom.Measure tomMeasure, bool isKpi) : base(tomMeasure, parentTable.ParentTabularModel)
{
_parentTable = parentTable;
_tomMeasure = tomMeasure;
diff --git a/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Model.cs b/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Model.cs
index 118b542..640d2ca 100644
--- a/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Model.cs
+++ b/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Model.cs
@@ -22,7 +22,7 @@ namespace BismNormalizer.TabularCompare.TabularMetadata
///
/// TabularModel object that the Model object belongs to.
/// Tabular Object Model Model object abtstracted by the Model class.
- public Model(TabularModel parentTabularModel, Tom.Model tomModel) : base(tomModel)
+ public Model(TabularModel parentTabularModel, Tom.Model tomModel) : base(tomModel, parentTabularModel)
{
_parentTabularModel = parentTabularModel;
_tomModel = tomModel;
diff --git a/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Perspective.cs b/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Perspective.cs
index 560a5cb..987ea4d 100644
--- a/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Perspective.cs
+++ b/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Perspective.cs
@@ -17,7 +17,7 @@ namespace BismNormalizer.TabularCompare.TabularMetadata
///
/// TabularModel object that the perspective belongs to.
/// Tabular Object Model Perspective object abtstracted by the Perspective class.
- public Perspective(TabularModel parentTabularModel, Tom.Perspective tomPerspective): base(tomPerspective)
+ public Perspective(TabularModel parentTabularModel, Tom.Perspective tomPerspective): base(tomPerspective, parentTabularModel)
{
_parentTabularModel = parentTabularModel;
_tomPerspective = tomPerspective;
diff --git a/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Relationship.cs b/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Relationship.cs
index 054bb94..4bf873a 100644
--- a/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Relationship.cs
+++ b/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Relationship.cs
@@ -27,7 +27,7 @@ namespace BismNormalizer.TabularCompare.TabularMetadata
/// Boolean indicating whether the TOM Relationship object Name property was changed to avoid name conflict.
/// If the TOM Relationship object Name property was changed, this parameter shows the old value.
public Relationship(Table table, SingleColumnRelationship tomRelationship, bool copiedFromSource = false, bool modifiedInternalName = false, string oldInternalName = "")
- : base(tomRelationship)
+ : base(tomRelationship, table.ParentTabularModel)
{
_table = table;
_tomRelationship = tomRelationship;
diff --git a/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Role.cs b/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Role.cs
index ba38498..236ce85 100644
--- a/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Role.cs
+++ b/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Role.cs
@@ -15,7 +15,7 @@ namespace BismNormalizer.TabularCompare.TabularMetadata
///
/// TabularModel object that the Role object belongs to.
/// Tabular Object Model Role object abtstracted by the Role class.
- public Role(TabularModel parentTabularModel, ModelRole role) : base(role)
+ public Role(TabularModel parentTabularModel, ModelRole role) : base(role, parentTabularModel)
{
_parentTabularModel = parentTabularModel;
_tomRole = role;
diff --git a/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Table.cs b/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Table.cs
index e912e45..d79dcd7 100644
--- a/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Table.cs
+++ b/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/Table.cs
@@ -29,7 +29,7 @@ namespace BismNormalizer.TabularCompare.TabularMetadata
///
/// TabularModel object that the Table object belongs to.
/// Tabular Object Model Table object abtstracted by the Table class.
- public Table(TabularModel parentTabularModel, Tom.Table tomTable) : base(tomTable)
+ public Table(TabularModel parentTabularModel, Tom.Table tomTable) : base(tomTable, parentTabularModel)
{
_parentTabularModel = parentTabularModel;
_tomTable = tomTable;
diff --git a/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/TabularObject.cs b/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/TabularObject.cs
index 1e9a140..f6aeb00 100644
--- a/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/TabularObject.cs
+++ b/BismNormalizer/BismNormalizer/TabularCompare/TabularMetadata/TabularObject.cs
@@ -16,16 +16,19 @@ namespace BismNormalizer.TabularCompare.TabularMetadata
{
private string _objectDefinition;
private string _name;
+ private TabularModel _parentTabularModel;
///
/// Initializes a new instance of the TabularObject class.
///
/// The Tabular Object Model supertype of the class being abstracted.
- public TabularObject(NamedMetadataObject namedMetaDataObject)
+ public TabularObject(NamedMetadataObject namedMetaDataObject, TabularModel parentTabularModel)
{
_name = namedMetaDataObject.Name;
if (namedMetaDataObject is Tom.Model) return; //Model has custom JSON string
-
+
+ _parentTabularModel = parentTabularModel;
+
//Serialize json
SerializeOptions options = new SerializeOptions();
options.IgnoreInferredProperties = true;
@@ -41,6 +44,15 @@ namespace BismNormalizer.TabularCompare.TabularMetadata
_objectDefinition = token.ToString(Formatting.Indented);
}
+ //Remove lineageTag if required
+ if (_parentTabularModel != null && _parentTabularModel.ComparisonInfo != null &&
+ !_parentTabularModel.ComparisonInfo.OptionsInfo.OptionLineageTag)
+ {
+ JToken token = JToken.Parse(_objectDefinition);
+ RemovePropertyFromObjectDefinition(token, "lineageTag");
+ _objectDefinition = token.ToString(Formatting.Indented);
+ }
+
////todo: remove with Giri's fix
////Remove return characters
//if (namedMetaDataObject is Tom.NamedExpression || namedMetaDataObject is Tom.Table)
diff --git a/BismNormalizer/BismNormalizer/TabularCompare/UI/Options.Designer.cs b/BismNormalizer/BismNormalizer/TabularCompare/UI/Options.Designer.cs
index 9d7c3b2..444697b 100644
--- a/BismNormalizer/BismNormalizer/TabularCompare/UI/Options.Designer.cs
+++ b/BismNormalizer/BismNormalizer/TabularCompare/UI/Options.Designer.cs
@@ -45,6 +45,7 @@
this.chkAffectedTables = new System.Windows.Forms.CheckBox();
this.cboProcessingOption = new System.Windows.Forms.ComboBox();
this.label1 = new System.Windows.Forms.Label();
+ this.chkLineageTag = new System.Windows.Forms.CheckBox();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
this.SuspendLayout();
@@ -53,10 +54,9 @@
//
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(365, 538);
- this.btnCancel.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+ this.btnCancel.Location = new System.Drawing.Point(274, 477);
this.btnCancel.Name = "btnCancel";
- this.btnCancel.Size = new System.Drawing.Size(100, 28);
+ this.btnCancel.Size = new System.Drawing.Size(75, 23);
this.btnCancel.TabIndex = 21;
this.btnCancel.Text = "Cancel";
this.btnCancel.UseVisualStyleBackColor = true;
@@ -65,10 +65,9 @@
//
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(258, 538);
- this.btnOK.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+ this.btnOK.Location = new System.Drawing.Point(194, 477);
this.btnOK.Name = "btnOK";
- this.btnOK.Size = new System.Drawing.Size(100, 28);
+ this.btnOK.Size = new System.Drawing.Size(75, 23);
this.btnOK.TabIndex = 20;
this.btnOK.Text = "OK";
this.btnOK.UseVisualStyleBackColor = true;
@@ -79,10 +78,9 @@
this.chkRoles.AutoSize = true;
this.chkRoles.Checked = true;
this.chkRoles.CheckState = System.Windows.Forms.CheckState.Checked;
- this.chkRoles.Location = new System.Drawing.Point(18, 149);
- this.chkRoles.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+ this.chkRoles.Location = new System.Drawing.Point(14, 121);
this.chkRoles.Name = "chkRoles";
- this.chkRoles.Size = new System.Drawing.Size(103, 20);
+ this.chkRoles.Size = new System.Drawing.Size(86, 17);
this.chkRoles.TabIndex = 5;
this.chkRoles.Text = "Include roles";
this.chkRoles.UseVisualStyleBackColor = true;
@@ -90,10 +88,9 @@
// chkPartitions
//
this.chkPartitions.AutoSize = true;
- this.chkPartitions.Location = new System.Drawing.Point(18, 186);
- this.chkPartitions.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+ this.chkPartitions.Location = new System.Drawing.Point(14, 151);
this.chkPartitions.Name = "chkPartitions";
- this.chkPartitions.Size = new System.Drawing.Size(279, 20);
+ this.chkPartitions.Size = new System.Drawing.Size(224, 17);
this.chkPartitions.TabIndex = 6;
this.chkPartitions.Text = "Consider partitions when comparing tables";
this.chkPartitions.UseVisualStyleBackColor = true;
@@ -105,10 +102,9 @@
this.chkMeasureDependencies.AutoSize = true;
this.chkMeasureDependencies.Checked = true;
this.chkMeasureDependencies.CheckState = System.Windows.Forms.CheckState.Checked;
- this.chkMeasureDependencies.Location = new System.Drawing.Point(18, 318);
- this.chkMeasureDependencies.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+ this.chkMeasureDependencies.Location = new System.Drawing.Point(14, 290);
this.chkMeasureDependencies.Name = "chkMeasureDependencies";
- this.chkMeasureDependencies.Size = new System.Drawing.Size(51, 20);
+ this.chkMeasureDependencies.Size = new System.Drawing.Size(47, 17);
this.chkMeasureDependencies.TabIndex = 7;
this.chkMeasureDependencies.Text = "XXX";
this.chkMeasureDependencies.UseVisualStyleBackColor = true;
@@ -116,10 +112,9 @@
// chkPerspectives
//
this.chkPerspectives.AutoSize = true;
- this.chkPerspectives.Location = new System.Drawing.Point(18, 30);
- this.chkPerspectives.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+ this.chkPerspectives.Location = new System.Drawing.Point(14, 24);
this.chkPerspectives.Name = "chkPerspectives";
- this.chkPerspectives.Size = new System.Drawing.Size(151, 20);
+ this.chkPerspectives.Size = new System.Drawing.Size(124, 17);
this.chkPerspectives.TabIndex = 3;
this.chkPerspectives.Text = "Include perspectives";
this.chkPerspectives.UseVisualStyleBackColor = true;
@@ -130,6 +125,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.chkLineageTag);
this.groupBox1.Controls.Add(this.chkRetainStorageMode);
this.groupBox1.Controls.Add(this.chkRetainPolicyPartitions);
this.groupBox1.Controls.Add(this.chkRetainPartitions);
@@ -140,11 +136,9 @@
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(16, 14);
- this.groupBox1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+ this.groupBox1.Location = new System.Drawing.Point(12, 11);
this.groupBox1.Name = "groupBox1";
- this.groupBox1.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4);
- this.groupBox1.Size = new System.Drawing.Size(450, 377);
+ this.groupBox1.Size = new System.Drawing.Size(338, 346);
this.groupBox1.TabIndex = 22;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Comparison Options";
@@ -152,10 +146,9 @@
// chkRetainStorageMode
//
this.chkRetainStorageMode.AutoSize = true;
- this.chkRetainStorageMode.Location = new System.Drawing.Point(18, 286);
- this.chkRetainStorageMode.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+ this.chkRetainStorageMode.Location = new System.Drawing.Point(14, 264);
this.chkRetainStorageMode.Name = "chkRetainStorageMode";
- this.chkRetainStorageMode.Size = new System.Drawing.Size(258, 20);
+ this.chkRetainStorageMode.Size = new System.Drawing.Size(207, 17);
this.chkRetainStorageMode.TabIndex = 12;
this.chkRetainStorageMode.Text = "For table updates, retain storage mode";
this.chkRetainStorageMode.UseVisualStyleBackColor = true;
@@ -164,10 +157,9 @@
//
this.chkRetainPolicyPartitions.AutoSize = true;
this.chkRetainPolicyPartitions.Enabled = false;
- this.chkRetainPolicyPartitions.Location = new System.Drawing.Point(46, 250);
- this.chkRetainPolicyPartitions.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+ this.chkRetainPolicyPartitions.Location = new System.Drawing.Point(34, 235);
this.chkRetainPolicyPartitions.Name = "chkRetainPolicyPartitions";
- this.chkRetainPolicyPartitions.Size = new System.Drawing.Size(277, 20);
+ this.chkRetainPolicyPartitions.Size = new System.Drawing.Size(221, 17);
this.chkRetainPolicyPartitions.TabIndex = 11;
this.chkRetainPolicyPartitions.Text = "Retain only refresh-policy based partitions";
this.chkRetainPolicyPartitions.UseVisualStyleBackColor = true;
@@ -175,10 +167,9 @@
// chkRetainPartitions
//
this.chkRetainPartitions.AutoSize = true;
- this.chkRetainPartitions.Location = new System.Drawing.Point(18, 224);
- this.chkRetainPartitions.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+ this.chkRetainPartitions.Location = new System.Drawing.Point(14, 214);
this.chkRetainPartitions.Name = "chkRetainPartitions";
- this.chkRetainPartitions.Size = new System.Drawing.Size(228, 20);
+ this.chkRetainPartitions.Size = new System.Drawing.Size(185, 17);
this.chkRetainPartitions.TabIndex = 10;
this.chkRetainPartitions.Text = "For table updates, retain partitions";
this.chkRetainPartitions.UseVisualStyleBackColor = true;
@@ -188,10 +179,9 @@
//
this.chkMergeCultures.AutoSize = true;
this.chkMergeCultures.Enabled = false;
- this.chkMergeCultures.Location = new System.Drawing.Point(46, 118);
- this.chkMergeCultures.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+ this.chkMergeCultures.Location = new System.Drawing.Point(34, 96);
this.chkMergeCultures.Name = "chkMergeCultures";
- this.chkMergeCultures.Size = new System.Drawing.Size(335, 20);
+ this.chkMergeCultures.Size = new System.Drawing.Size(270, 17);
this.chkMergeCultures.TabIndex = 9;
this.chkMergeCultures.Text = "For culture updates, merge translations (not replace)";
this.chkMergeCultures.UseVisualStyleBackColor = true;
@@ -199,10 +189,9 @@
// chkCultures
//
this.chkCultures.AutoSize = true;
- this.chkCultures.Location = new System.Drawing.Point(18, 92);
- this.chkCultures.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+ this.chkCultures.Location = new System.Drawing.Point(14, 75);
this.chkCultures.Name = "chkCultures";
- this.chkCultures.Size = new System.Drawing.Size(119, 20);
+ this.chkCultures.Size = new System.Drawing.Size(101, 17);
this.chkCultures.TabIndex = 8;
this.chkCultures.Text = "Include cultures";
this.chkCultures.UseVisualStyleBackColor = true;
@@ -212,10 +201,9 @@
//
this.chkMergePerspectives.AutoSize = true;
this.chkMergePerspectives.Enabled = false;
- this.chkMergePerspectives.Location = new System.Drawing.Point(46, 57);
- this.chkMergePerspectives.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+ this.chkMergePerspectives.Location = new System.Drawing.Point(34, 46);
this.chkMergePerspectives.Name = "chkMergePerspectives";
- this.chkMergePerspectives.Size = new System.Drawing.Size(360, 20);
+ this.chkMergePerspectives.Size = new System.Drawing.Size(287, 17);
this.chkMergePerspectives.TabIndex = 4;
this.chkMergePerspectives.Text = "For perspective updates, merge selections (not replace)";
this.chkMergePerspectives.UseVisualStyleBackColor = true;
@@ -227,11 +215,9 @@
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(16, 399);
- this.groupBox2.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+ this.groupBox2.Location = new System.Drawing.Point(12, 364);
this.groupBox2.Name = "groupBox2";
- this.groupBox2.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4);
- this.groupBox2.Size = new System.Drawing.Size(450, 124);
+ this.groupBox2.Size = new System.Drawing.Size(338, 101);
this.groupBox2.TabIndex = 23;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "Database Deployment";
@@ -241,10 +227,9 @@
this.chkAffectedTables.AutoSize = true;
this.chkAffectedTables.Checked = true;
this.chkAffectedTables.CheckState = System.Windows.Forms.CheckState.Checked;
- this.chkAffectedTables.Location = new System.Drawing.Point(18, 78);
- this.chkAffectedTables.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+ this.chkAffectedTables.Location = new System.Drawing.Point(14, 63);
this.chkAffectedTables.Name = "chkAffectedTables";
- this.chkAffectedTables.Size = new System.Drawing.Size(196, 20);
+ this.chkAffectedTables.Size = new System.Drawing.Size(159, 17);
this.chkAffectedTables.TabIndex = 9;
this.chkAffectedTables.Text = "Process only affected tables";
this.chkAffectedTables.UseVisualStyleBackColor = true;
@@ -259,35 +244,42 @@
"Default",
"Do Not Process",
"Full"});
- this.cboProcessingOption.Location = new System.Drawing.Point(152, 30);
- this.cboProcessingOption.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+ this.cboProcessingOption.Location = new System.Drawing.Point(114, 24);
this.cboProcessingOption.Name = "cboProcessingOption";
- this.cboProcessingOption.Size = new System.Drawing.Size(173, 24);
+ this.cboProcessingOption.Size = new System.Drawing.Size(131, 21);
this.cboProcessingOption.TabIndex = 8;
//
// label1
//
this.label1.AutoSize = true;
- this.label1.Location = new System.Drawing.Point(16, 34);
- this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+ this.label1.Location = new System.Drawing.Point(12, 28);
this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(121, 16);
+ this.label1.Size = new System.Drawing.Size(96, 13);
this.label1.TabIndex = 0;
this.label1.Text = "Processing Option:";
//
+ // chkLineageTag
+ //
+ this.chkLineageTag.AutoSize = true;
+ this.chkLineageTag.Location = new System.Drawing.Point(14, 182);
+ this.chkLineageTag.Name = "chkLineageTag";
+ this.chkLineageTag.Size = new System.Drawing.Size(208, 17);
+ this.chkLineageTag.TabIndex = 13;
+ this.chkLineageTag.Text = "Consider LineageTag when comparing";
+ this.chkLineageTag.UseVisualStyleBackColor = true;
+ //
// Options
//
this.AcceptButton = this.btnOK;
- this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.btnCancel;
- this.ClientSize = new System.Drawing.Size(482, 586);
+ this.ClientSize = new System.Drawing.Size(362, 516);
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(4, 4, 4, 4);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "Options";
@@ -323,5 +315,6 @@
private System.Windows.Forms.CheckBox chkRetainPartitions;
private System.Windows.Forms.CheckBox chkRetainPolicyPartitions;
private System.Windows.Forms.CheckBox chkRetainStorageMode;
+ private System.Windows.Forms.CheckBox chkLineageTag;
}
}
\ No newline at end of file
diff --git a/BismNormalizer/BismNormalizer/TabularCompare/UI/Options.cs b/BismNormalizer/BismNormalizer/TabularCompare/UI/Options.cs
index 00fec4c..0c23115 100644
--- a/BismNormalizer/BismNormalizer/TabularCompare/UI/Options.cs
+++ b/BismNormalizer/BismNormalizer/TabularCompare/UI/Options.cs
@@ -50,6 +50,7 @@ namespace BismNormalizer.TabularCompare.UI
chkRoles.Checked = _comparisonInfo.OptionsInfo.OptionRoles;
//chkActions.Checked = _comparisonInfo.OptionsInfo.OptionActions;
chkPartitions.Checked = _comparisonInfo.OptionsInfo.OptionPartitions;
+ chkLineageTag.Checked = _comparisonInfo.OptionsInfo.OptionLineageTag;
chkRetainPartitions.Checked = _comparisonInfo.OptionsInfo.OptionRetainPartitions;
chkRetainPolicyPartitions.Checked = _comparisonInfo.OptionsInfo.OptionRetainPolicyPartitions;
chkRetainStorageMode.Checked = _comparisonInfo.OptionsInfo.OptionRetainStorageMode;
@@ -70,6 +71,7 @@ namespace BismNormalizer.TabularCompare.UI
//_comparisonInfo.OptionsInfo.OptionActions = chkActions.Checked;
_comparisonInfo.OptionsInfo.OptionActions = false;
_comparisonInfo.OptionsInfo.OptionPartitions = chkPartitions.Checked;
+ _comparisonInfo.OptionsInfo.OptionLineageTag = chkLineageTag.Checked;
_comparisonInfo.OptionsInfo.OptionRetainPartitions = chkRetainPartitions.Checked;
_comparisonInfo.OptionsInfo.OptionRetainPolicyPartitions = chkRetainPolicyPartitions.Checked;
_comparisonInfo.OptionsInfo.OptionRetainStorageMode = chkRetainStorageMode.Checked;
diff --git a/BismNormalizer/BismNormalizer/app.config b/BismNormalizer/BismNormalizer/app.config
index a18ec4c..ce30cf9 100644
--- a/BismNormalizer/BismNormalizer/app.config
+++ b/BismNormalizer/BismNormalizer/app.config
@@ -88,6 +88,9 @@
True
+
+ True
+
diff --git a/BismNormalizer/BismNormalizer/source.extension.vsixmanifest b/BismNormalizer/BismNormalizer/source.extension.vsixmanifest
index 1c9a388..0bd4aaf 100644
--- a/BismNormalizer/BismNormalizer/source.extension.vsixmanifest
+++ b/BismNormalizer/BismNormalizer/source.extension.vsixmanifest
@@ -1,7 +1,7 @@
-
+
BISM Normalizer
BISM Normalizer manages Analysis Services tabular models
http://bism-normalizer.com/