public async Task<User> Login(string username, string password)
{
var loginUri = "https://ssl.reddit.com/api/login";
var postContent = new Dictionary<string, string>
{
{ "api_type", "json" },
{ "user", username },
{ "passwd", password }
};
var loginResult = await _simpleHttpService.SendPostForCookies(postContent, loginUri);
var jsonResult = loginResult.Item1;
var loginResultThing = JsonConvert.DeserializeObject<LoginJsonThing>(jsonResult);
if (loginResultThing == null || loginResultThing.Json == null ||
(loginResultThing.Json.Errors != null && loginResultThing.Json.Errors.Length != 0))
{
_notificationService.CreateNotification(string.Format("Failed to login as User:{0}", username));
return null; //errors in the login process
}
else
{
var loginCookie = loginResult.Item2["reddit_session"];
var user = new User { Authenticated = true, LoginCookie = loginCookie, Username = username, NeedsCaptcha = false };
user.Me = await GetMe(user);
return user;
}
}