Skip to content

Commit ed0c000

Browse files
committed
fixing merge conflicts
1 parent af7533f commit ed0c000

6 files changed

Lines changed: 97 additions & 47 deletions

File tree

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,27 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
3-
<Metadata>
4-
<Identity Id="BIDSHelper_VSIX.b6deed2d-6c6f-46d4-94be-28027bf7d873" Version="2.0.2" Language="en-US" Publisher="BIDSHelper.codeplex.com" />
5-
<DisplayName>BIDS Helper for Visual Studio 2017</DisplayName>
6-
<Description xml:space="preserve">BIDS Helper is an extension for BIDS / SSDT-BI that includes numerous enhancements for SQL Server BI projects</Description>
7-
<MoreInfo>https://bidshelper.codeplex.com/documentation</MoreInfo>
8-
<License>License.rtf</License>
9-
<Icon>BIDSHelper.ico</Icon>
10-
<PreviewImage>BIDSHelperMontage.gif</PreviewImage>
11-
<Tags>SSDT,SSIS,SSAS,SSRS,BIDS,SQL Server Data Tools,Integration Services,Analysis Services,Reporting Services</Tags>
12-
</Metadata>
13-
<Installation>
14-
<InstallationTarget Id="Microsoft.VisualStudio.IntegratedShell" Version="15.0" />
15-
</Installation>
16-
<Dependencies>
17-
<Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" d:Source="Manual" Version="[4.5,)" />
18-
<Dependency Id="Microsoft.VisualStudio.MPF.11.0" DisplayName="Visual Studio MPF 11.0" d:Source="Installed" Version="[11.0,12.0)" />
19-
</Dependencies>
20-
<Assets>
21-
<Asset Type="Microsoft.VisualStudio.VsPackage" d:Source="Project" d:ProjectName="%CurrentProject%" Path="|%CurrentProject%;PkgdefProjectOutputGroup|" />
22-
<Asset Type="Microsoft.VisualStudio.MefComponent" d:Source="Project" d:ProjectName="%CurrentProject%" Path="|%CurrentProject%|" />
23-
</Assets>
2+
<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
3+
<Metadata>
4+
<Identity Id="BIDSHelper_VSIX.b6deed2d-6c6f-46d4-94be-28027bf7d873" Version="2.0.2" Language="en-US" Publisher="bideveloperextensions.github.io" />
5+
<DisplayName>BI Developer Extensions for Visual Studio 2017</DisplayName>
6+
<Description xml:space="preserve">BI Developer Extensions (formerly BIDS Helper) is an extension for BIDS / SSDT-BI that includes numerous enhancements for SQL Server BI projects</Description>
7+
<MoreInfo>https://bideveloperextensions.github.io</MoreInfo>
8+
<License>License.rtf</License>
9+
<Icon>BIDSHelper.ico</Icon>
10+
<PreviewImage>BIDSHelperMontage.gif</PreviewImage>
11+
<Tags>SSDT,SSIS,SSAS,SSRS,BIDS,SQL Server Data Tools,Integration Services,Analysis Services,Reporting Services</Tags>
12+
</Metadata>
13+
<Installation>
14+
<InstallationTarget Id="Microsoft.VisualStudio.IntegratedShell" Version="15.0" />
15+
</Installation>
16+
<Dependencies>
17+
<Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" d:Source="Manual" Version="[4.5,)" />
18+
<Dependency Id="Microsoft.VisualStudio.MPF.11.0" DisplayName="Visual Studio MPF 11.0" d:Source="Installed" Version="[11.0,12.0)" />
19+
</Dependencies>
20+
<Assets>
21+
<Asset Type="Microsoft.VisualStudio.VsPackage" d:Source="Project" d:ProjectName="%CurrentProject%" Path="|%CurrentProject%;PkgdefProjectOutputGroup|" />
22+
<Asset Type="Microsoft.VisualStudio.MefComponent" d:Source="Project" d:ProjectName="%CurrentProject%" Path="|%CurrentProject%|" />
23+
</Assets>
24+
<Prerequisites>
25+
<Prerequisite Id="Microsoft.Net.Component.4.5.TargetingPack" Version="[15.0.26621.2,16.0)" DisplayName=".NET Framework 4.5 targeting pack" />
26+
</Prerequisites>
2427
</PackageManifest>

SQL2017_VS2017_BidsHelper.csproj

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3-
<Import Project="packages\Microsoft.VSSDK.BuildTools.14.2.25201\build\Microsoft.VSSDK.BuildTools.props" Condition="Exists('packages\Microsoft.VSSDK.BuildTools.14.2.25201\build\Microsoft.VSSDK.BuildTools.props')" />
4-
<Import Project="packages\Microsoft.VSSDK.BuildTools.14.0.23107\build\Microsoft.VSSDK.BuildTools.props" Condition="Exists('packages\Microsoft.VSSDK.BuildTools.14.0.23107\build\Microsoft.VSSDK.BuildTools.props')" />
3+
<Import Project="packages\Microsoft.VSSDK.BuildTools.15.1.192\build\Microsoft.VSSDK.BuildTools.props" Condition="Exists('packages\Microsoft.VSSDK.BuildTools.15.1.192\build\Microsoft.VSSDK.BuildTools.props')" />
54
<PropertyGroup>
65
<MinimumVisualStudioVersion>15.0</MinimumVisualStudioVersion>
76
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
@@ -72,7 +71,7 @@
7271
<WarningLevel>4</WarningLevel>
7372
<CopyVsixExtensionFiles>True</CopyVsixExtensionFiles>
7473
<DeployExtension>True</DeployExtension>
75-
<CopyVsixExtensionLocation>C:\Users\ggalloway\appdata\local\microsoft\VisualStudio\15.0_51708051Exp\Extensions\wz3p0wpo.mvh</CopyVsixExtensionLocation>
74+
<CopyVsixExtensionLocation>C:\Users\ggalloway\AppData\Local\Microsoft\VisualStudio\15.0_31028247Exp\Extensions\Extensions-15.0_31028247\jor1u0ry.qod</CopyVsixExtensionLocation>
7675
<Prefer32Bit>false</Prefer32Bit>
7776
<PlatformTarget>x86</PlatformTarget>
7877
<RunCodeAnalysis>false</RunCodeAnalysis>
@@ -1135,15 +1134,15 @@
11351134
<PropertyGroup Label="VsixCompress">
11361135
<VsixCompressTargets Condition=" '$(VsixCompressTargets)'=='' ">$([System.IO.Path]::GetFullPath( $(MSBuildProjectDirectory)\.\packages\VsixCompress.1.0.1\tools\vsix-compress.targets ))</VsixCompressTargets>
11371136
</PropertyGroup>
1137+
<Import Project="$(VsixCompressTargets)" Condition="Exists('$(VsixCompressTargets)')" Label="VsixCompress" />
11381138
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
11391139
<PropertyGroup>
11401140
<ErrorText>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}.</ErrorText>
11411141
</PropertyGroup>
1142-
<Error Condition="!Exists('packages\Microsoft.VSSDK.BuildTools.14.2.25201\build\Microsoft.VSSDK.BuildTools.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.VSSDK.BuildTools.14.2.25201\build\Microsoft.VSSDK.BuildTools.props'))" />
1143-
<Error Condition="!Exists('packages\Microsoft.VSSDK.BuildTools.14.2.25201\build\Microsoft.VSSDK.BuildTools.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.VSSDK.BuildTools.14.2.25201\build\Microsoft.VSSDK.BuildTools.targets'))" />
1142+
<Error Condition="!Exists('packages\Microsoft.VSSDK.BuildTools.15.1.192\build\Microsoft.VSSDK.BuildTools.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.VSSDK.BuildTools.15.1.192\build\Microsoft.VSSDK.BuildTools.props'))" />
1143+
<Error Condition="!Exists('packages\Microsoft.VSSDK.BuildTools.15.1.192\build\Microsoft.VSSDK.BuildTools.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.VSSDK.BuildTools.15.1.192\build\Microsoft.VSSDK.BuildTools.targets'))" />
11441144
</Target>
1145-
<Import Project="packages\Microsoft.VSSDK.BuildTools.14.2.25201\build\Microsoft.VSSDK.BuildTools.targets" Condition="Exists('packages\Microsoft.VSSDK.BuildTools.14.2.25201\build\Microsoft.VSSDK.BuildTools.targets')" />
1146-
<Import Project="$(VsixCompressTargets)" Condition="Exists('$(VsixCompressTargets)')" Label="VsixCompress" />
1145+
<Import Project="packages\Microsoft.VSSDK.BuildTools.15.1.192\build\Microsoft.VSSDK.BuildTools.targets" Condition="Exists('packages\Microsoft.VSSDK.BuildTools.15.1.192\build\Microsoft.VSSDK.BuildTools.targets')" />
11471146
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
11481147
Other similar extension points exist, see Microsoft.Common.targets.
11491148
<Target Name="BeforeBuild">

SSAS/PrinterFriendlyDimensionUsage.cs

Lines changed: 49 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ public static List<DimensionUsage> GetTabularDimensionUsage(DataModelingSandboxW
178178
}
179179
if (!bFoundVisibleMeasure && bIsBusMatrix) continue;
180180

181-
List<DimensionUsage> tmp = RecurseTabularRelationships(table, table, bIsBusMatrix);
181+
List<DimensionUsage> tmp = RecurseTabularRelationships(table, table, bIsBusMatrix, new List<Microsoft.AnalysisServices.BackEnd.Relationship>(), false);
182182
dimUsage.AddRange(tmp);
183183

184184
if (bFoundVisibleAttribute && bFoundVisibleMeasure) //if this table had a measure but no dimension relationships (except to itself)
@@ -287,30 +287,61 @@ private static List<DimensionUsage> RecurseTabularRelationships(Dimension dMG, M
287287
return list;
288288
}
289289

290-
private static List<DimensionUsage> RecurseTabularRelationships(DataModelingTable dimensionTable, DataModelingTable outerFactTable, bool bIsBusMatrix)
290+
private static List<DimensionUsage> RecurseTabularRelationships(DataModelingTable dimensionTable, DataModelingTable outerFactTable, bool bIsBusMatrix, List<Microsoft.AnalysisServices.BackEnd.Relationship> listRelationshipsTraversed, bool bManyToMany)
291291
{
292292
List<DimensionUsage> list = new List<DimensionUsage>();
293293
foreach (Microsoft.AnalysisServices.BackEnd.Relationship relOuter in dimensionTable.Sandbox.Relationships.RelationshipCollection)
294294
{
295-
if (relOuter.FromColumn.Table.Name != dimensionTable.Name) continue; //find any relationships that start from the "dimensionTable" table
295+
if (listRelationshipsTraversed.Contains(relOuter)) continue; //don't double back on path
296296

297-
string sActiveFlag = "Active";
297+
DataModelingColumn reportedDimensionColumn = null;
298+
DimensionUsage usage = null;
299+
bool bThisRelationshipManyToMany = bManyToMany;
300+
string sRelationshipType = "Active";
298301
if (!relOuter.Active)
299302
{
300-
sActiveFlag = "Inactive";
303+
sRelationshipType = "Inactive";
301304
if (bIsBusMatrix) continue; //don't show inactive relationships in bus matrix view
302305
}
303-
304-
DimensionUsage usage = new DimensionUsage(sActiveFlag, outerFactTable, relOuter.ToColumn.Table);
305-
usage.Column1Name = "Foreign Key Column";
306-
usage.Column1Value = relOuter.FromColumn.Name;
307-
usage.Column2Name = "Primary Key Column";
308-
usage.Column2Value = relOuter.ToColumn.Name;
306+
307+
if (bThisRelationshipManyToMany)
308+
sRelationshipType = "Many to Many";
309+
310+
if (relOuter.ToColumn.Table.Name == dimensionTable.Name
311+
&& relOuter.CrossFilterDirection == Microsoft.AnalysisServices.BackEnd.CrossFilterDirection.Both
312+
&& relOuter.Active)
313+
{
314+
sRelationshipType = "Many to Many";
315+
reportedDimensionColumn = relOuter.FromColumn;
316+
bThisRelationshipManyToMany = true;
317+
318+
usage = new DimensionUsage(sRelationshipType, outerFactTable, reportedDimensionColumn.Table);
319+
usage.Column1Name = "Foreign Key Column";
320+
usage.Column1Value = relOuter.ToColumn.Name;
321+
usage.Column2Name = "Primary Key Column";
322+
usage.Column2Value = relOuter.FromColumn.Name;
323+
324+
}
325+
else if (relOuter.FromColumn.Table.Name != dimensionTable.Name)
326+
{
327+
continue; //find any relationships that start from the "dimensionTable" table
328+
}
329+
else
330+
{
331+
reportedDimensionColumn = relOuter.ToColumn;
332+
333+
usage = new DimensionUsage(sRelationshipType, outerFactTable, reportedDimensionColumn.Table);
334+
usage.Column1Name = "Foreign Key Column";
335+
usage.Column1Value = relOuter.FromColumn.Name;
336+
usage.Column2Name = "Primary Key Column";
337+
usage.Column2Value = relOuter.ToColumn.Name;
338+
}
339+
309340

310341
bool bFoundVisibleAttribute = false;
311-
foreach (DataModelingColumn col in relOuter.ToColumn.Table.Columns)
342+
foreach (DataModelingColumn col in reportedDimensionColumn.Table.Columns)
312343
{
313-
if (!relOuter.ToColumn.Table.IsPrivate && !col.IsPrivate && col.IsAttributeHierarchyQueriable)
344+
if (!col.Table.IsPrivate && !col.IsPrivate && col.IsAttributeHierarchyQueriable)
314345
{
315346
bFoundVisibleAttribute = true;
316347
break;
@@ -321,8 +352,12 @@ private static List<DimensionUsage> RecurseTabularRelationships(DataModelingTabl
321352

322353
if (bIsBusMatrix)
323354
{
355+
List<Microsoft.AnalysisServices.BackEnd.Relationship> listLatestRelationshipsTraversed = new List<Microsoft.AnalysisServices.BackEnd.Relationship>();
356+
listLatestRelationshipsTraversed.AddRange(listRelationshipsTraversed);
357+
listLatestRelationshipsTraversed.Add(relOuter);
358+
324359
//recurse if it's the bus matrix view
325-
list.AddRange(RecurseTabularRelationships(relOuter.ToColumn.Table, outerFactTable, bIsBusMatrix));
360+
list.AddRange(RecurseTabularRelationships(reportedDimensionColumn.Table, outerFactTable, bIsBusMatrix, listLatestRelationshipsTraversed, bThisRelationshipManyToMany));
326361
}
327362
}
328363

SSAS/UnusedColumnsPlugin.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ public override void Exec()
139139
conn.Open();
140140
System.Data.Common.DbCommand cmd = conn.CreateCommand();
141141
cmd.CommandText = sandbox.GetSourceQueryDefinition(table.Id);
142+
cmd.CommandTimeout = 0;
142143
cmd.Prepare();
143144
System.Data.Common.DbDataReader reader = cmd.ExecuteReader(CommandBehavior.SchemaOnly);
144145
DataTable tbl = reader.GetSchemaTable();

SSIS/SmartDiffPlugin.cs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -562,8 +562,14 @@ private static void GetTFSFile(string sServer, string sPath, string sLocalPath)
562562
System.Reflection.BindingFlags getmethodflags = System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.InvokeMethod | System.Reflection.BindingFlags.DeclaredOnly | System.Reflection.BindingFlags.Instance;
563563
System.Reflection.Assembly tfsAssembly = System.Reflection.Assembly.Load(TFS_ASSEMBLY_FULL_NAME);
564564
System.Reflection.Assembly tfsVersionControlAssembly = System.Reflection.Assembly.Load(TFS_VERSION_CONTROL_ASSEMBLY_FULL_NAME);
565+
System.IServiceProvider server = null;
566+
#if VS2017
567+
Type typeFactory = tfsAssembly.GetType("Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory");
568+
server = (System.IServiceProvider)typeFactory.InvokeMember("GetTeamProjectCollection", getmethodflags | System.Reflection.BindingFlags.Static, null, null, new object[] { new Uri(sServer) });
569+
#else
565570
Type typeFactory = tfsAssembly.GetType("Microsoft.TeamFoundation.Client.TeamFoundationServerFactory");
566-
System.IServiceProvider server = (System.IServiceProvider)typeFactory.InvokeMember("GetServer", getmethodflags | System.Reflection.BindingFlags.Static, null, null, new object[] { sServer });
571+
server = (System.IServiceProvider)typeFactory.InvokeMember("GetServer", getmethodflags | System.Reflection.BindingFlags.Static, null, null, new object[] { sServer });
572+
#endif
567573
object versionControl = server.GetService(tfsVersionControlAssembly.GetType("Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer"));
568574

569575
Type typeVersionSpec = tfsVersionControlAssembly.GetType("Microsoft.TeamFoundation.VersionControl.Client.VersionSpec");
@@ -591,8 +597,14 @@ private static string[] GetTFSVersions(string sServer, string sPath)
591597
System.Reflection.BindingFlags getmethodflags = System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.InvokeMethod | System.Reflection.BindingFlags.DeclaredOnly | System.Reflection.BindingFlags.Instance;
592598
System.Reflection.Assembly tfsAssembly = System.Reflection.Assembly.Load(TFS_ASSEMBLY_FULL_NAME);
593599
System.Reflection.Assembly tfsVersionControlAssembly = System.Reflection.Assembly.Load(TFS_VERSION_CONTROL_ASSEMBLY_FULL_NAME);
600+
System.IServiceProvider server = null;
601+
#if VS2017
602+
Type typeFactory = tfsAssembly.GetType("Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory");
603+
server = (System.IServiceProvider)typeFactory.InvokeMember("GetTeamProjectCollection", getmethodflags | System.Reflection.BindingFlags.Static, null, null, new object[] { new Uri(sServer) });
604+
#else
594605
Type typeFactory = tfsAssembly.GetType("Microsoft.TeamFoundation.Client.TeamFoundationServerFactory");
595-
System.IServiceProvider server = (System.IServiceProvider)typeFactory.InvokeMember("GetServer", getmethodflags | System.Reflection.BindingFlags.Static, null, null, new object[] { sServer });
606+
server = (System.IServiceProvider)typeFactory.InvokeMember("GetServer", getmethodflags | System.Reflection.BindingFlags.Static, null, null, new object[] { sServer });
607+
#endif
596608
object versionControl = server.GetService(tfsVersionControlAssembly.GetType("Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer"));
597609

598610
int iVersion = -1;
@@ -618,7 +630,7 @@ private static string[] GetTFSVersions(string sServer, string sPath)
618630
}
619631
return list.ToArray();
620632
}
621-
#endregion
633+
#endregion
622634

623635
private void PrepXmlForDiff(string sFilename, string sXSL, bool bNewLineOnAttributes)
624636
{

packages.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,6 @@
2323
<package id="Microsoft.VisualStudio.Threading" version="14.1.131" targetFramework="net45" />
2424
<package id="Microsoft.VisualStudio.Utilities" version="14.2.25123" targetFramework="net45" />
2525
<package id="Microsoft.VisualStudio.Validation" version="14.1.111" targetFramework="net45" />
26-
<package id="Microsoft.VSSDK.BuildTools" version="14.2.25201" targetFramework="net45" developmentDependency="true" />
26+
<package id="Microsoft.VSSDK.BuildTools" version="15.1.192" targetFramework="net461" developmentDependency="true" />
2727
<package id="VsixCompress" version="1.0.1" targetFramework="net45" />
2828
</packages>

0 commit comments

Comments
 (0)