Initial split migration
This commit is contained in:
38
Pushy.Silo/Grains/LinkGenerator.cs
Normal file
38
Pushy.Silo/Grains/LinkGenerator.cs
Normal file
@@ -0,0 +1,38 @@
|
||||
using Pushy.Domain;
|
||||
|
||||
namespace Pushy.Silo.Grains;
|
||||
|
||||
public sealed class LinkGenerator : IGrainBase, ILinkGenerator
|
||||
{
|
||||
private readonly ILogger<LinkGenerator> _logger;
|
||||
private readonly IClusterClient _clusterClient;
|
||||
|
||||
public IGrainContext GrainContext { get; }
|
||||
|
||||
public LinkGenerator(
|
||||
IGrainContext grainContext,
|
||||
IClusterClient clusterClient,
|
||||
ILogger<LinkGenerator> logger)
|
||||
{
|
||||
_clusterClient = clusterClient;
|
||||
_logger = logger;
|
||||
GrainContext = grainContext;
|
||||
}
|
||||
|
||||
public async ValueTask<LinkResult> GenerateTextShare(string text)
|
||||
{
|
||||
string item = $"{Guid.CreateVersion7():N}"[9..];
|
||||
var textGrain = _clusterClient.GetGrain<ITextItem>(item);
|
||||
try
|
||||
{
|
||||
await textGrain.SetText(text);
|
||||
return new LinkResult(textGrain);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
//TODO: Write log message of why it fails?
|
||||
//Swallow small change of error
|
||||
return await GenerateTextShare(text);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user