Skip to content

Commit

Permalink
name generator
Browse files Browse the repository at this point in the history
  • Loading branch information
KSemenenko committed Jun 2, 2023
1 parent 0329aae commit d48f1af
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 17 deletions.
4 changes: 2 additions & 2 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
<RepositoryUrl>https://github.com/managedcode/Orleans.SignalR</RepositoryUrl>
<PackageProjectUrl>https://github.com/managedcode/Orleans.SignalR</PackageProjectUrl>
<Product>Managed Code - Orleans SignalR</Product>
<Version>7.1.4</Version>
<PackageVersion>7.1.4</PackageVersion>
<Version>7.1.5</Version>
<PackageVersion>7.1.5</PackageVersion>

</PropertyGroup>
<PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">
Expand Down
31 changes: 18 additions & 13 deletions ManagedCode.Orleans.SignalR.Core/SignalR/NameHelperGenerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ private static string ConnectionNamespace<TMessage>(string hub)

public static ISignalRConnectionHolderGrain GetConnectionHolderGrain<THub>(IGrainFactory grainFactory)
{
return grainFactory.GetGrain<ISignalRConnectionHolderGrain>(Base64Encode(typeof(THub).FullName!));
return grainFactory.GetGrain<ISignalRConnectionHolderGrain>(CleanString(typeof(THub).FullName!));
}

public static ISignalRInvocationGrain GetInvocationGrain<THub>(IGrainFactory grainFactory, string invocationId)
{
return grainFactory.GetGrain<ISignalRInvocationGrain>(Base64Encode(typeof(THub).FullName + ":" + invocationId));
return grainFactory.GetGrain<ISignalRInvocationGrain>(CleanString(typeof(THub).FullName + "::" + invocationId));
}

// public static ISignalRGroupHolderGrain GetGroupHolderGrain<THub>(IGrainFactory grainFactory)
Expand All @@ -27,24 +27,29 @@ public static ISignalRInvocationGrain GetInvocationGrain<THub>(IGrainFactory gra

public static ISignalRUserGrain GetSignalRUserGrain<THub>(IGrainFactory grainFactory, string userId)
{
return grainFactory.GetGrain<ISignalRUserGrain>(Base64Encode(typeof(THub).FullName + ":" + userId));
return grainFactory.GetGrain<ISignalRUserGrain>(CleanString(typeof(THub).FullName + "::" + userId));
}

public static ISignalRGroupGrain GetSignalRGroupGrain<THub>(IGrainFactory grainFactory, string groupId)
{
return grainFactory.GetGrain<ISignalRGroupGrain>(Base64Encode(typeof(THub).FullName + ":" + groupId));
return grainFactory.GetGrain<ISignalRGroupGrain>(CleanString(typeof(THub).FullName + "::" + groupId));
}

public static string Base64Encode(string plainText)
public static string CleanString(string input)
{
var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText);
return System.Convert.ToBase64String(plainTextBytes);
}

public static string Base64Decode(string base64EncodedData)
{
var base64EncodedBytes = System.Convert.FromBase64String(base64EncodedData);
return System.Text.Encoding.UTF8.GetString(base64EncodedBytes);
var builder = new System.Text.StringBuilder();
foreach (char c in input)
{
if (char.IsLetterOrDigit(c) || c == '-' || c == ':' || c == '.')
{
builder.Append(c);
}
else
{
builder.Append(":");
}
}
return builder.ToString();
}

// public static IAsyncStream<TMessage> GetStream<THub, TMessage>(IClusterClient clusterClient,
Expand Down
4 changes: 2 additions & 2 deletions ManagedCode.Orleans.SignalR.Tests/HubTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ public HubTests(SiloCluster testApp, ITestOutputHelper outputHelper)
[Fact]
public void Base64Test()
{
var name = NameHelperGenerator.Base64Encode(typeof(SimpleTestHub).FullName);
name.Should().Be("TWFuYWdlZENvZGUuT3JsZWFucy5TaWduYWxSLlRlc3RzLlRlc3RBcHAuSHVicy5TaW1wbGVUZXN0SHVi");
var name = NameHelperGenerator.CleanString(typeof(SimpleTestHub).FullName+"\\"+"//@!234");
name.Should().Be("ManagedCode.Orleans.SignalR.Tests.TestApp.Hubs.SimpleTestHub:::::234");
}

[Fact]
Expand Down

0 comments on commit d48f1af

Please sign in to comment.