32 lines
809 B
C#
32 lines
809 B
C#
using System.Security.Cryptography;
|
|
using System.Text;
|
|
using Pushy.Grains;
|
|
|
|
namespace Pushy;
|
|
|
|
public sealed class LinkGenerator
|
|
{
|
|
private readonly ILogger<LinkGenerator> _logger;
|
|
private readonly IClusterClient _clusterClient;
|
|
|
|
public LinkGenerator(
|
|
IClusterClient clusterClient,
|
|
ILogger<LinkGenerator> logger)
|
|
{
|
|
_clusterClient = clusterClient;
|
|
_logger = logger;
|
|
}
|
|
|
|
public async Task<ITextItem> GenerateTextShare(string text)
|
|
{
|
|
string item = $"{Guid.CreateVersion7():N}"[6..];
|
|
var sharedGrain = _clusterClient.GetGrain<ITextItem>(item);
|
|
if (await sharedGrain.IsAvailable())
|
|
{
|
|
await sharedGrain.SetText(text);
|
|
return sharedGrain;
|
|
}
|
|
|
|
return await GenerateTextShare(text);
|
|
}
|
|
} |