public async Task<Thing> GetSubreddit(string id = null, string name = null)
{
try
{
byte[] keyspace = null;
DBKey targetKey = null;
if (id != null)
{
keyspace = GenerateIdKeyspace(id);
targetKey = _subredditsDB.GetKeys()[1];
}
else if (name != null)
{
keyspace = GenerateNameKeyspace(name);
targetKey = _subredditsDB.GetKeys()[0];
}
else
throw new ArgumentNullException("id/name");
using (var subredditCursor = await _subredditsDB.SeekAsync(targetKey, keyspace, DBReadFlags.NoLock))
{
if (subredditCursor != null)
{
var currentRecord = subredditCursor.Get();
var decodedListing = Encoding.UTF8.GetString(currentRecord, SubredditKeySpaceSize, currentRecord.Length - SubredditKeySpaceSize);
var deserializedComment = JsonConvert.DeserializeObject<Thing>(decodedListing);
return deserializedComment;
}
else
return null;
}
}
catch
{
return null;
}
}