public void ColumnOnlyTest() { using (var connection = UnitTestHelpers.GetCapellaDataTestConnection()) { connection.Open(); const string query = @"WITH MEMBER New AS [Measures].[Collection Alert Distinct Count] - [Measures].[Open] - [Measures].[Closed] SELECT {[Measures].[Open] , [Measures].[Closed], new, [Measures].[Collection Count] } ON 0 FROM Report WHERE (LASTPERIODS(30,StrToMember('[Date].[Date].&['+Format(Now(),""yyyy-MM-ddT00:00:00"")+']')) ,[Organization].[Organization].&[413] ,[Questionnaire].[Questionnaire Version - Questionnaire - Question Category - Question].[Questionnaire].&[SalesDemo]&[2] )"; var dp = new DynamicParameters(); dp.Add("~[Measures].[O]", "Open"); dp.Add("~[Measures].[New]", "New"); dp.Add("~[Measures].[C]", "Closed"); dp.Add("~[Measures].[Collection Count]", "Total"); var result = connection.Query <AlertState>(query, dp); Assert.IsNotNull(result); } }
public void CommandFinalizerDoesNotThrow() { WeakReference weakConnection = null; WeakReference weakCommand = null; Action subTest = () => { // Only dispose the connection to reproduce the error using (var connection = UnitTestHelpers.GetCapellaDataTestConnection()) { var command = connection.CreateCommand(); command.CommandText = @"SELECT [Measures].[Response Computation] on 0 FROM Report"; connection.Open(); using (var reader = command.ExecuteReader()) { while (reader.Read()) { ; } } weakConnection = new WeakReference(connection); weakCommand = new WeakReference(command); } }; subTest(); GC.Collect(0, GCCollectionMode.Forced); GC.WaitForPendingFinalizers(); Assert.IsFalse(weakCommand.IsAlive); }
public void CustomParmsTest() { var connection = UnitTestHelpers.GetCapellaDataTestConnection(); using (connection) { connection.Open(); const string query = @"SELECT [Measures].[Response Computation] on 0, [Organization].[Organization].&[407] on 1 FROM Report WHERE ([Computation].[Computation].&[Mean], [Questionnaire].[Questionnaire Version - Questionnaire - Question Category - Question].[Question].&[SalesDemo]&[2]&[Q2] )"; var d = new DynamicParameters(); d.Add("~[Measures].[Response Computation]", "Score", DbType.Double); dynamic x = connection.Query(query, d); foreach (var y in x) { Assert.AreEqual(64.6481481481482, y.Score, .00000001); break; } } }
public void DimensionPropertyWithTwoHierarchiesHavingTheSamePropertyTest() { const string query = @"WITH MEMBER UnitParentValue AS [Organization].[Organization].currentmember.parent.uniquename MEMBER DisplayScore AS ROUND([Measures].[Response Computation], 0) SELECT {[Measures].[Response Computation], DisplayScore ,[Measures].[Response Count] } ON 0, (DESCENDANTS([Organization].[Organization].&[61],1,SELF), [Questionnaire].[Questionnaire Version - Questionnaire - Question Category - Question].[Question].&[SalesDemo]&[2]&[oa] ) DIMENSION PROPERTIES Parent_Unique_Name on 1 FROM [Report] WHERE ( [Questionnaire].[Response Value Type].&[code], [Computation].[Computation].&[Mean], [Report Period].[Report Period].&[November 2012], [Organization].[Organization Hierarchy Name].&[Sales Demo], [Report Period].[Report Period Type].&[3 Month Roll] )"; using (var connection = UnitTestHelpers.GetCapellaDataTestConnection()) { connection.Open(); var parms = new DynamicParameters(); parms.Add("~0", "SupplementalLabel"); parms.Add("~0##UniqueName##", "SupplementalMdxValue"); parms.Add("~0##LevelNumber##", "HierarchyLevel"); parms.Add("~1", "Label"); parms.Add("~1##UniqueName##", "MdxValue"); parms.Add("~2", "SupplementalParentMdxValue"); parms.Add("~[Measures].[DisplayScore]", "Score"); parms.Add("~[Measures].[Response Computation]", "RawScore"); parms.Add("~[Measures].[Response Count]", "Count"); parms.Add("~[Measures].[ComparatorScore]", "ComparatorScore"); var actual = connection.Query <Metric>(query, parms).ToList(); Assert.AreEqual(36, actual.Count, "item count"); var specificItem = actual.Single(a => a.SupplementalMdxValue == "[Organization].[Organization].&[407]"); Assert.AreEqual(192, specificItem.Count, "return count"); Assert.AreEqual(56, specificItem.Score, "score"); Assert.AreEqual("Overall satisfaction", specificItem.Label, "question label"); Assert.AreEqual("[Questionnaire].[Questionnaire Version - Questionnaire - Question Category - Question].[Question].&[SalesDemo]&[2]&[oa]", specificItem.MdxValue, "question mdxvalue"); Assert.AreEqual(4, specificItem.HierarchyLevel, "hierarchy level"); Assert.AreEqual("Chicago (IL)", specificItem.SupplementalLabel, "entity label"); Assert.AreEqual("[Organization].[Organization].&[61]", specificItem.SupplementalParentMdxValue, "entity parent mdx value"); Assert.AreEqual("56.1197916666667", specificItem.RawScore.ToString(), "raw score"); } }
public void SpecialColumnsNoRowsTest() { const string query = @" WITH MEMBER ParentMdxValue AS [Verbatim Taxonomy].[Verbatim Taxonomy Level 1 - 2 - 3].currentmember.parent.uniquename MEMBER Score AS [Measures].[Verbatim Sentence Sentiment Score] / [Measures].[Verbatim Analysis Sentence Count] MEMBER ComparatorScore AS CASE WHEN [Verbatim Sentence Sentiment].[Verbatim Sentence Sentiment].currentmember IS [Verbatim Sentence Sentiment].[Verbatim Sentence Sentiment].&[Negative] THEN 1.000 WHEN [Verbatim Sentence Sentiment].[Verbatim Sentence Sentiment].currentmember IS [Verbatim Sentence Sentiment].[Verbatim Sentence Sentiment].&[Positive] THEN 0.001 ELSE Score END SELECT {[Measures].[Verbatim Analysis Sentence Count], Score, ComparatorScore, ParentMdxValue} ON 0, NONEMPTY(DESCENDANTS([Verbatim Taxonomy].[Verbatim Taxonomy Level 1 - 2 - 3].[All], 1)*[Verbatim Sentence Sentiment].[Verbatim Sentence Sentiment].[Verbatim Sentence Sentiment],[Measures].[Verbatim Analysis Sentence Count]) ON 1 FROM REPORT WHERE ( [Report Period].[Report Period].&[November 2012], [Report Period].[Report Period Type].&[3 Month Roll], [Organization].[Organization Hierarchy Name].&[Sales Demo], [Organization].[Organization].&[407], [Questionnaire].[Questionnaire Version - Questionnaire - Question Category - Question].[Question].&[SalesDemo]&[2]&[oa] ,[Population].[Population Attribute 1].[All],[Population].[Population Attribute 2].[All],[Population].[Population Attribute 3].[All] )" ; using (var connection = UnitTestHelpers.GetCapellaDataTestConnection()) { connection.Open(); var parms = new DynamicParameters(); parms.Add("~[Measures].[Verbatim Analysis Sentence Count]", "Count"); parms.Add("~[Measures].[Score]", "Score"); parms.Add("~[Measures].[ComparatorScore]", "ComparatorScore"); parms.Add("~0", "Label"); parms.Add("~0##UniqueName##", "MdxValue"); parms.Add("~0##LevelNumber##", "HierarchyLevel"); parms.Add("~1", "SupplementalLabel"); parms.Add("~1##UniqueName##", "SupplementalMdxValue"); parms.Add("~[Measures].[ParentMdxValue]", "ParentMdxValue"); var actual = connection.Query(query, parms); Assert.AreEqual(0, actual.Count()); } }
public void NothingOnRowsTest() { var connection = UnitTestHelpers.GetCapellaDataTestConnection(); using (connection) { connection.Open(); const string query = @"SELECT [Measures].[Response Computation] on 0 FROM Report"; var x = connection.Query(query); Assert.AreEqual(1, x.Count()); } }
public void SettingDataTypeTest() { using (var connection = UnitTestHelpers.GetCapellaDataTestConnection()) { connection.Open(); const string query = @"WITH MEMBER DisplayScore AS [Measures].[Response Computation] MEMBER CalcScore AS [Measures].[Response Computation] SET EntitiesWithScores AS ORDER(Filter([Employee].[Employee Guid].&[{2B10EE84-084E-1EEE-63C5-D54007BAF192}].siblings, [Measures].[Response Count]> 0), CalcScore, BDESC) MEMBER [Rank] AS RANK([Employee].[Employee Guid].currentmember, EntitiesWithScores, DisplayScore) MEMBER MaxRank AS MAX(EntitiesWithScores, [Rank]) SELECT {DisplayScore, [Measures].[Response Computation], [Measures].[Response Count]} on 0, ([Employee].[Employee Guid].&[{2B10EE84-084E-1EEE-63C5-D54007BAF192}]) on 1 FROM [Report] WHERE ( [Questionnaire].[Response Value Type].&[code], [Computation].[Computation].&[Mean], [Organization].[Organization Hierarchy Name].&[Sales Demo], [Report Period].[Report Period].&[February 2012], [Report Period].[Report Period Type].&[3 Month Roll], [Organization].[Organization].&[356], [Questionnaire].[Questionnaire Version - Questionnaire - Question Category - Question].[Question].&[SalesDemo]&[2]&[Repurchase] ) "; var dp = new DynamicParameters(); dp.Add("~0", "Label"); dp.Add("~[Measures].[DisplayScore]", "Score", DbType.Double); dp.Add("~[Measures].[Response Computation]", "RawScore", DbType.Double); var actual = connection.Query <Metric>(query, dp).SingleOrDefault(); Assert.IsNotNull(actual); Assert.AreEqual("77.2727272727273", actual.Score.ToString()); Assert.AreEqual("{2B10EE84-084E-1EEE-63C5-D54007BAF192}", actual.Label); Assert.AreEqual("77.2727272727273", actual.RawScore.ToString()); } }
public void NoResultsTest() { using (var connection = UnitTestHelpers.GetCapellaDataTestConnection()) { connection.Open(); const string query = @"SELECT [Measures].[Response Computation] ON 0, NON EMPTY(DESCENDANTS([Organization].[Organization].&[61],1)) on 1 FROM REPORT WHERE ([Computation].[Computation].&[Mean], [Questionnaire].[Questionnaire Version - Questionnaire - Question Category - Question].[Question].&[SalesDemo]&[2]&[Q2], [Report Period].[Report Period].&[November 20123] )" ; var x = connection.Query(query); Assert.AreEqual(0, x.Count()); } }
public void ColumnMappingMixingTildaAndOrdinalTest() { using (var connection = UnitTestHelpers.GetCapellaDataTestConnection()) { connection.Open(); const string query = @"SELECT [Measures].[Response Computation] ON 0, DESCENDANTS([Organization].[Organization].&[61],1) * [Questionnaire].[Questionnaire Version - Questionnaire - Question Category - Question].[Question].&[SalesDemo]&[2]&[Q2] on 1 FROM REPORT WHERE [Computation].[Computation].&[Mean]"; var parms = new DynamicParameters(); parms.Add("~0", "label"); parms.Add("~[Measures].[Response Computation]", "score"); var x = connection.Query <StandardScore>(query, parms).ToList(); var specificItem = x.First(); Assert.AreEqual(36, x.Count, "item count"); Assert.AreEqual(66.79, specificItem.Score, .01); Assert.AreEqual("Mexico City", specificItem.Label, "label"); } }
public void DataSetTestWithColumnMap() { var dataSet = new DataSet(); var connection = UnitTestHelpers.GetCapellaDataTestConnection(); using (connection) { connection.Open(); const string query = @"SELECT [Measures].[Response Computation] on 0, [Organization].[Organization].&[407] on 1 FROM Report WHERE ([Computation].[Computation].&[Mean], [Questionnaire].[Questionnaire Version - Questionnaire - Question Category - Question].[Question].&[SalesDemo]&[2]&[Q2] )"; using (var command = connection.CreateCommand()) { command.CommandText = query; command.Parameters.Add(new MdxParameter("~[Measures].[Response Computation]", "Score")); command.Parameters.Add(new MdxParameter("~[Organization].[Organization].[Level 05]", "Store")); var dataAdapter = new MdxDataAdapter { SelectCommand = command }; dataAdapter.Fill(dataSet); } // Verify there is a table Assert.AreEqual(1, dataSet.Tables.Count); // Verify data foreach (DataRow item in dataSet.Tables[0].Rows) { Assert.AreEqual("Chicago (IL)", item["Store"].ToString()); Assert.AreEqual(64.6481481481482, (double)item["Score"], .00000001); break; } } }
public void ParmTest() { using (var connection = UnitTestHelpers.GetCapellaDataTestConnection()) { connection.Open(); const string query = @"SELECT [Measures].[Response Computation] ON 0, DESCENDANTS([Organization].[Organization].&[61],1) on 1 FROM REPORT WHERE ([Computation].[Computation].&[Mean], [Questionnaire].[Questionnaire Version - Questionnaire - Question Category - Question].[Question].&[SalesDemo]&[2]&[Q2], @ReportPeriod )" ; var parms = new DynamicParameters(); parms.Add("@ReportPeriod", "[Report Period].[Report Period].&[November 2012]"); parms.Add("~[Measures].[Response Computation]", "score"); var x = connection.Query(query, parms).ToList(); Assert.IsNotNull(x.First().score); Assert.AreEqual(36, x.Count()); } }
public void DimensionPropertyTest() { const string query = @"WITH MEMBER ParentSqlValue AS [Organization].[Organization].currentmember.parent.Properties(""Organization Id"") SELECT {ParentSqlValue} ON 0, DESCENDANTS([Organization].[Organization].&[61], 5 , self_and_Before) dimension properties [Organization].[Organization].[Organization Id], Parent_UNique_name ON 1 FROM Report WHERE ([Organization].[Organization Hierarchy Name].&[Sales Demo])"; using (var connection = UnitTestHelpers.GetCapellaDataTestConnection()) { connection.Open(); var parms = new DynamicParameters(); parms.Add("~0", "Label"); parms.Add("~0##UniqueName##", "MdxValue"); parms.Add("~0##LevelNumber##", "HierarchyLevel"); parms.Add("~1", "SqlValue"); parms.Add("~2", "ParentMdxValue"); parms.Add("~3", "ParentSqlValue"); var x = connection.Query(query, parms); var actual = connection.Query <Metric>(query, parms).ToList(); Assert.IsNotNull(actual); Assert.AreEqual(37, actual.Count); var specificItem = actual.Single(a => string.Equals(a.Label, "Chicago (IL)", StringComparison.OrdinalIgnoreCase)); Assert.AreEqual("R11", specificItem.ParentSqlValue); Assert.AreEqual("U401", specificItem.SqlValue); Assert.AreEqual(4, specificItem.HierarchyLevel); Assert.AreEqual("[Organization].[Organization].&[407]", specificItem.MdxValue); Assert.AreEqual("[Organization].[Organization].&[61]", specificItem.ParentMdxValue); } }
public void ExecuteScalarTest() { object scalar; using (var connection = UnitTestHelpers.GetCapellaDataTestConnection()) { connection.Open(); const string query = @"SELECT [Measures].[Response Computation] on 0, [Organization].[Organization].&[407] on 1 FROM Report WHERE ([Computation].[Computation].&[Mean], [Questionnaire].[Questionnaire Version - Questionnaire - Question Category - Question].[Question].&[SalesDemo]&[2]&[Q2] )"; using (var command = connection.CreateCommand()) { command.CommandText = query; command.Parameters.Add(new MdxParameter("~[Measures].[Response Computation]", "Score")); command.Parameters.Add(new MdxParameter("~[Organization].[Organization].[Level 05]", "Store")); scalar = command.ExecuteScalar(); } } Assert.AreEqual("Chicago (IL)", scalar.ToString()); }
public void OrdnialErrorTest() { using (var connection = UnitTestHelpers.GetCapellaDataTestConnection()) { connection.Open(); const string query = @"WITH MEMBER DisplayScore AS ROUND([Measures].[Response Computation], 0) MEMBER CalcScore AS ROUND([Measures].[Response Computation], 0) SET EntitiesWithScores AS NONEMPTY([Organization].[Organization].&[407].siblings,[Measures].[Response Count]) MEMBER [Type] AS IIF([Questionnaire].[Question Id].currentmember is [Questionnaire].[Question Id].[All], 'Category', 'Question') MEMBER SqlValue AS IIF([Type] = 'Category',[Questionnaire].[Questionnaire Version - Questionnaire - Question Category - Question].currentmember.name, [Questionnaire].[Question Id].currentmember.name) MEMBER ParentMdxValue AS IIF([Type] = 'Category', null, [Questionnaire].[Questionnaire Version - Questionnaire - Question Category - Question].currentmember.parent.uniquename) MEMBER ParentLabel AS IIF([Type] = 'Category', NULL, [Questionnaire].[Questionnaire Version - Questionnaire - Question Category - Question].currentmember.member_caption) MEMBER [Rank] AS RANK([Organization].[Organization].currentmember, EntitiesWithScores, DisplayScore) MEMBER MaxRank AS MAX(EntitiesWithScores, [Rank]) MEMBER ComparatorScore AS ([Organization].[Organization].&[61], DisplayScore) MEMBER Range1 AS IIF([Type] = 'Category', ([Organization].[Organization].currentmember.datamember,[Measures].[Organization Question Category Threshold Low Score]), ([Organization].[Organization].currentmember.datamember,[Measures].[Organization Question Threshold Low Score])) MEMBER Range2 AS IIF([Type] = 'Category', ([Organization].[Organization].currentmember.datamember,[Measures].[Organization Question Category Threshold High Score]), ([Organization].[Organization].currentmember.datamember,[Measures].[Organization Question Threshold High Score])) MEMBER Range3 AS IIF([Type] = 'Category', ([Organization].[Organization].currentmember.datamember,[Measures].[Organization Question Category Threshold Maximum Score]), ([Organization].[Organization].currentmember.datamember,[Measures].[Organization Question Threshold Maximum Score])) SELECT {DisplayScore, [Rank], MaxRank, [Measures].[SqlValue], [Measures].[Response Computation], [Measures].[Response Count], ParentLabel, ParentMdxValue, Range1, Range2, Range3 ,[Measures].[ComparatorScore] } on 0, ([Organization].[Organization].&[407], [Questionnaire].[Questionnaire Version - Questionnaire - Question Category - Question].[Question].&[SalesDemo]&[2]&[oa]) on 1 FROM [Report] WHERE ( [Questionnaire].[Response Value Type].&[code], [Computation].[Computation].&[Mean], [Organization].[Organization Hierarchy Name].&[Sales Demo], [Report Period].[Report Period].&[November 2012], [Report Period].[Report Period Type].&[3 Month Roll] )" ; var parameters = new DynamicParameters(); parameters.Add("~1", "Label"); parameters.Add("~[Measures].[DisplayScore]", "Score"); parameters.Add("~[Measures].[Rank]", "Rank"); parameters.Add("~[Measures].[MaxRank]", "MaxRank"); parameters.Add("~1##UniqueName##", "MdxValue"); parameters.Add("~[Measures].[SqlValue]", "SqlValue"); parameters.Add("~[Measures].[Response Computation]", "RawScore"); parameters.Add("~[Measures].[Response Count]", "Count"); parameters.Add("~[Measures].[ParentLabel]", "ParentLabel"); parameters.Add("~[Measures].[ParentMdxValue]", "ParentMdxValue"); parameters.Add("~[Measures].[Range1]", "Range1"); parameters.Add("~[Measures].[Range2]", "Range2"); parameters.Add("~[Measures].[Range3]", "Range3"); parameters.Add("~[Measures].[ComparatorScore]", "ComparatorScore"); var actual = connection.Query <Metric>(query, parameters); Assert.IsNotNull(actual); Assert.AreEqual(1, actual.Count()); } }
public void ExtraColumnsTest() { using (var connection = UnitTestHelpers.GetCapellaDataTestConnection()) { connection.Open(); const string query = @"WITH MEMBER DisplayScore AS ROUND([Measures].[Response Computation], 0) MEMBER CalcScore AS ROUND([Measures].[Response Computation], 0) SET EntitiesWithScores AS ORDER(Filter([Organization].[Organization].&[407].siblings,[Measures].[Response Count]> 0), CalcScore, BDESC) MEMBER [Type] AS IIF([Questionnaire].[Question Id].currentmember is [Questionnaire].[Question Id].[All], 'Category', 'Question') MEMBER ParentMdxValue AS IIF([Type] = 'Category', null, [Questionnaire].[Questionnaire Version - Questionnaire - Question Category - Question].currentmember.parent.uniquename) MEMBER ParentLabel AS IIF([Type] = 'Category', NULL, [Questionnaire].[Questionnaire Version - Questionnaire - Question Category - Question].currentmember.member_caption) MEMBER [Rank] AS RANK([Organization].[Organization].currentmember, EntitiesWithScores, DisplayScore) MEMBER MaxRank AS MAX(EntitiesWithScores, [Rank]) MEMBER ComparatorScore AS ([Organization].[Organization].&[1357].parent, DisplayScore) MEMBER Range1 AS IIF([Type] = 'Category', ([Organization].[Organization].currentmember.datamember,[Measures].[Organization Question Category Threshold Low Score]), ([Organization].[Organization].currentmember.datamember,[Measures].[Organization Question Threshold Low Score])) MEMBER Range2 AS IIF([Type] = 'Category', ([Organization].[Organization].currentmember.datamember,[Measures].[Organization Question Category Threshold High Score]), ([Organization].[Organization].currentmember.datamember,[Measures].[Organization Question Threshold High Score])) MEMBER Range3 AS IIF([Type] = 'Category', ([Organization].[Organization].currentmember.datamember,[Measures].[Organization Question Category Threshold Maximum Score]), ([Organization].[Organization].currentmember.datamember,[Measures].[Organization Question Threshold Maximum Score])) SELECT {DisplayScore, [Rank], MaxRank, [Measures].[Response Computation], [Measures].[Response Count], ParentLabel, ParentMdxValue, Range1, Range2, Range3 ,[Measures].[ComparatorScore] } on 0, ([Organization].[Organization].&[407], [Questionnaire].[Questionnaire Version - Questionnaire - Question Category - Question].[Question]) on 1 FROM [Report] WHERE ( [Questionnaire].[Response Value Type].&[code], [Computation].[Computation].&[Mean], [Organization].[Organization Hierarchy Name].&[Sales Demo], [Report Period].[Report Period].&[November 2012], [Report Period].[Report Period Type].&[3 Month Roll] )" ; var parms = new DynamicParameters(); parms.Add("~1", "Label"); parms.Add("~1##UniqueName##", "MdxValue"); parms.Add("~[Questionnaire].[Questionnaire Version - Questionnaire - Question Category - Question].[Question]##UniqueName##", "SqlValue"); parms.Add("~2", "score"); var x = connection.Query <Metric>(query, parms).ToList(); Assert.AreEqual(23, x.Count(), "item count"); var specificItem = x.SingleOrDefault(a => a.Label == "Product knowledge"); Assert.IsNotNull(specificItem); Assert.AreEqual(76, specificItem.Score, "score"); Assert.AreEqual("Product knowledge", specificItem.Label, "label"); Assert.AreEqual("[Questionnaire].[Questionnaire Version - Questionnaire - Question Category - Question].[Question].&[SalesDemo]&[2]&[Q4]", specificItem.MdxValue, "mdx value"); Assert.AreEqual("[Questionnaire].[Questionnaire Version - Questionnaire - Question Category - Question].[Question].&[SalesDemo]&[2]&[Q4]", specificItem.SqlValue, "sql value"); } }
public void GermanMetricTest() { using (var connection = UnitTestHelpers.GetCapellaDataTestConnection()) { const string query = @"WITH MEMBER DisplayScore AS ROUND([Measures].[Response Computation], 0) MEMBER CalcScore AS ROUND([Measures].[Response Computation], 0) SET EntitiesWithScores AS ORDER(Filter([Organization].[Organization].&[71].siblings, [Measures].[Response Count]> 0), CalcScore, BDESC) MEMBER [Type] AS IIF([Questionnaire].[Question Id].currentmember is [Questionnaire].[Question Id].[All], 'Category', 'Question') MEMBER Label AS [Questionnaire].[Questionnaire Version - Questionnaire - Question Category - Question].currentmember.member_caption MEMBER MdxValue AS [Questionnaire].[Questionnaire Version - Questionnaire - Question Category - Question].currentmember.uniquename MEMBER SqlValue AS IIF([Type] = 'Category', [Questionnaire].[Questionnaire Version - Questionnaire - Question Category - Question].currentmember.name, [Questionnaire].[Question Id].currentmember.name) MEMBER ParentMdxValue AS IIF([Type] = 'Category', null, [Questionnaire].[Questionnaire Version - Questionnaire - Question Category - Question].currentmember.parent.uniquename) MEMBER ParentLabel AS IIF([Type] = 'Category', NULL, [Questionnaire].[Questionnaire Version - Questionnaire - Question Category - Question].currentmember.member_caption) MEMBER [Rank] AS RANK([Organization].[Organization].currentmember, EntitiesWithScores, DisplayScore) MEMBER MaxRank AS MAX(EntitiesWithScores, [Rank]) MEMBER ComparatorScore AS ([Organization].[Organization].&[356].parent, DisplayScore) MEMBER Range1 AS IIF([Type] = 'Category', ([Organization].[Organization].currentmember.datamember, [Measures].[Organization Question Category Threshold Low Score]), ([Organization].[Organization].currentmember.datamember, [Measures].[Organization Question Threshold Low Score])) MEMBER Range2 AS IIF([Type] = 'Category', ([Organization].[Organization].currentmember.datamember, [Measures].[Organization Question Category Threshold High Score]), ([Organization].[Organization].currentmember.datamember, [Measures].[Organization Question Threshold High Score])) MEMBER Range3 AS IIF([Type] = 'Category', ([Organization].[Organization].currentmember.datamember, [Measures].[Organization Question Category Threshold Maximum Score]), ([Organization].[Organization].currentmember.datamember, [Measures].[Organization Question Threshold Maximum Score])) SELECT {[Measures].[Label], DisplayScore, [Rank], MaxRank, [Measures].[MdxValue], [Measures].[SqlValue], [Measures].[Response Computation], [Measures].[Response Count], ParentLabel, ParentMdxValue, Range1, Range2, Range3 , [Measures].[ComparatorScore] } on 0, ([Organization].[Organization].&[356], [Questionnaire].[Questionnaire Version - Questionnaire - Question Category - Question].[Question Category]) on 1 FROM [Report] WHERE ( [Questionnaire].[Response Value Type].&[code], [Computation].[Computation].&[Mean], [Organization].[Organization Hierarchy Name].&[Sales Demo], [Report Period].[Report Period].&[November 2012], [Report Period].[Report Period Type].&[3 Month Roll] ) "; connection.Open(); var parms = new DynamicParameters(); parms.Add("~2", "Label"); parms.Add("~3", "Score"); parms.Add("~8", "RawScore"); parms.Add("~12", "Range1"); parms.Add("~13", "Range2"); parms.Add("~14", "Range3"); parms.Add("~15", "ComparatorScore"); System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("de-DE"); System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("de-DE"); var scores = connection.Query <Metric>(query, parms); Assert.IsTrue(scores.Any()); } System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US"); System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); }