public async Task StoreSubreddit(Thing thing)
{
var value = JsonConvert.SerializeObject(thing);
var encodedValue = Encoding.UTF8.GetBytes(value);
var keyspace = GenerateNameKeyspace(((Subreddit)thing.Data).DisplayName);
var combinedSpace = GenerateCombinedKeyspace(((Subreddit)thing.Data).DisplayName, ((Subreddit)thing.Data).Name, encodedValue);
using (var subredditsCursor = await _subredditsDB.SeekAsync(_subredditsDB.GetKeys()[0], keyspace, DBReadFlags.AutoLock | DBReadFlags.WaitOnLock))
{
if (_terminateSource.IsCancellationRequested)
return;
if (subredditsCursor != null)
{
if (((Subreddit)thing.Data).Description != null)
await subredditsCursor.UpdateAsync(combinedSpace);
}
else
{
try
{
await _subredditsDB.InsertAsync(combinedSpace);
}
catch (Exception ex)
{
}
}
}
}