144 lines
5.2 KiB
C#
144 lines
5.2 KiB
C#
<Query Kind="Program">
|
|
<Connection>
|
|
<ID>463c2997-8a6a-4688-9575-6549e5215f7b</ID>
|
|
<Persist>true</Persist>
|
|
<Server>D0011-SQL-01.sdt.local</Server>
|
|
<Database>jazz tst Grady 20191107.1</Database>
|
|
<ShowServer>true</ShowServer>
|
|
</Connection>
|
|
<Reference><ProgramFilesX64>\Microsoft SDKs\Azure\.NET SDK\v2.9\bin\plugins\Diagnostics\Newtonsoft.Json.dll</Reference>
|
|
<NuGetReference>Amazon.Lambda.S3Events</NuGetReference>
|
|
<NuGetReference>AWSSDK.Core</NuGetReference>
|
|
<NuGetReference>AWSSDK.S3</NuGetReference>
|
|
<Namespace>Amazon</Namespace>
|
|
<Namespace>Amazon.Auth.AccessControlPolicy</Namespace>
|
|
<Namespace>Amazon.Auth.AccessControlPolicy.ActionIdentifiers</Namespace>
|
|
<Namespace>Amazon.Internal</Namespace>
|
|
<Namespace>Amazon.Lambda.S3Events</Namespace>
|
|
<Namespace>Amazon.MissingTypes</Namespace>
|
|
<Namespace>Amazon.Runtime</Namespace>
|
|
<Namespace>Amazon.Runtime.CredentialManagement</Namespace>
|
|
<Namespace>Amazon.Runtime.CredentialManagement.Internal</Namespace>
|
|
<Namespace>Amazon.Runtime.EventStreams</Namespace>
|
|
<Namespace>Amazon.Runtime.EventStreams.Internal</Namespace>
|
|
<Namespace>Amazon.Runtime.Internal</Namespace>
|
|
<Namespace>Amazon.Runtime.Internal.Auth</Namespace>
|
|
<Namespace>Amazon.Runtime.Internal.Settings</Namespace>
|
|
<Namespace>Amazon.Runtime.Internal.Transform</Namespace>
|
|
<Namespace>Amazon.Runtime.Internal.Util</Namespace>
|
|
<Namespace>Amazon.Runtime.SharedInterfaces</Namespace>
|
|
<Namespace>Amazon.Runtime.SharedInterfaces.Internal</Namespace>
|
|
<Namespace>Amazon.S3</Namespace>
|
|
<Namespace>Amazon.S3.Encryption</Namespace>
|
|
<Namespace>Amazon.S3.Encryption.Internal</Namespace>
|
|
<Namespace>Amazon.S3.Internal</Namespace>
|
|
<Namespace>Amazon.S3.IO</Namespace>
|
|
<Namespace>Amazon.S3.Model</Namespace>
|
|
<Namespace>Amazon.S3.Model.Internal.MarshallTransformations</Namespace>
|
|
<Namespace>Amazon.S3.Transfer</Namespace>
|
|
<Namespace>Amazon.S3.Util</Namespace>
|
|
<Namespace>Amazon.Util</Namespace>
|
|
<Namespace>Amazon.Util.Internal</Namespace>
|
|
<Namespace>Amazon.Util.Internal.PlatformServices</Namespace>
|
|
<Namespace>Newtonsoft.Json</Namespace>
|
|
<Namespace>Newtonsoft.Json.Converters</Namespace>
|
|
<Namespace>Newtonsoft.Json.Linq</Namespace>
|
|
<Namespace>Newtonsoft.Json.Schema</Namespace>
|
|
<Namespace>Newtonsoft.Json.Serialization</Namespace>
|
|
<Namespace>System</Namespace>
|
|
<Namespace>System.Diagnostics</Namespace>
|
|
<Namespace>System.Diagnostics.Tracing</Namespace>
|
|
<Namespace>System.IO.Compression</Namespace>
|
|
<Namespace>ThirdParty.BouncyCastle.Asn1</Namespace>
|
|
<Namespace>ThirdParty.BouncyCastle.Asn1.Utilities</Namespace>
|
|
<Namespace>ThirdParty.BouncyCastle.Math</Namespace>
|
|
<Namespace>ThirdParty.BouncyCastle.OpenSsl</Namespace>
|
|
<Namespace>ThirdParty.BouncyCastle.Utilities.IO.Pem</Namespace>
|
|
<Namespace>ThirdParty.Ionic.Zlib</Namespace>
|
|
<Namespace>ThirdParty.Json.LitJson</Namespace>
|
|
<Namespace>ThirdParty.MD5</Namespace>
|
|
</Query>
|
|
|
|
void Main()
|
|
{
|
|
var test = (from sd in ScoreDimensions
|
|
select new StarterSetAdHocScoreDimensionInfo
|
|
{
|
|
DimensionGUID = sd.DimensionGUID,
|
|
FriendlyName = sd.FriendlyName,
|
|
GlobalID = sd.GlobalID
|
|
}).ToList();
|
|
test.OrderByDescending(t => t.MDXMemberName).Dump();
|
|
}
|
|
|
|
// Define other methods and classes here
|
|
|
|
public class StarterSetAdHocScoreDimensionInfo
|
|
{
|
|
public Guid DimensionGUID { get; set; }
|
|
public string FriendlyName { get; set; }
|
|
public string GlobalID { get; set; }
|
|
public string AttributeId { get; set; }
|
|
public string MDXMemberID { get; set; }
|
|
public bool IsRollup { get; set; }
|
|
internal Regex ServiceLineRegex = new Regex(@"^Service Line (\d)$", RegexOptions.IgnoreCase);
|
|
public bool ServiceLineRegexIsMatch => ServiceLineRegex.IsMatch(FriendlyName);
|
|
|
|
public string MDXMemberName
|
|
{
|
|
get
|
|
{
|
|
try
|
|
{
|
|
return AnalysisServicesUtils.GetHierarchyMDXName("Patient Encounter",
|
|
ServiceLineRegex.IsMatch(FriendlyName) && IsRollup
|
|
? $"{ServiceLineRegex.Replace(FriendlyName, "Service Line Rollup ${1}")}"
|
|
: $"{FriendlyName}{(IsRollup ? " Rollup" : "")}");
|
|
}
|
|
catch (Exception)
|
|
{
|
|
return string.Empty;
|
|
}
|
|
}
|
|
}
|
|
|
|
internal string Name => $"Patient Encounter - {FriendlyName}{(IsRollup ? " Rollup" : "")}";
|
|
|
|
internal StarterSetAdHocScoreDimensionInfo()
|
|
{
|
|
MDXMemberID = string.Empty;
|
|
IsRollup = false;
|
|
}
|
|
|
|
}
|
|
|
|
public class AnalysisServicesUtils
|
|
{
|
|
public static string GetHierarchyMDXName(string aDimensionName, string aHierarchyName)
|
|
{
|
|
var s = "[{0}].[{1}]";
|
|
|
|
return String.Format(s, GetASFriendlyName(aDimensionName), GetASFriendlyName(aHierarchyName));
|
|
}
|
|
|
|
public static string GetASFriendlyName(string aStr, bool aTrim = true)
|
|
{
|
|
//Invalid characters --> . , ; ' ` : / \ * | ? " & % $ ! + = ( ) [ ] { }
|
|
//Take out white space
|
|
var returnStr = System.Text.RegularExpressions.Regex.Replace(aStr, @"[\.,;'`:/\\\*\|\?""&%\$!\+=\(\)\[\]{}]", "");
|
|
|
|
if (aTrim) returnStr = returnStr.Trim();
|
|
|
|
//Replace reserved name
|
|
if (returnStr.Equals("Name", StringComparison.OrdinalIgnoreCase)) returnStr = "Name_";
|
|
if (returnStr.Equals("Measures", StringComparison.OrdinalIgnoreCase)) returnStr = "Measures_";
|
|
if (returnStr.Equals("ID", StringComparison.OrdinalIgnoreCase)) returnStr = "ID_";
|
|
if (returnStr.Equals("Key", StringComparison.OrdinalIgnoreCase)) returnStr = "Key_";
|
|
return returnStr;
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|