public GetSubreddit ( string id = null, string name = null ) : Task |
||
id | string | |
name | string | |
Résultat | Task |
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;
}
}
private async Task <string> TranslateSubredditNameToId(Subreddits subreddits, string subredditName) { var subreddit = await subreddits.GetSubreddit(null, subredditName); if (subreddit != null) { return(((Subreddit)subreddit.Data).Name); } else { return(null); } }