private bool Login()
{
if (!AppSettings.TraktOAuth)
{
UIUtils.UpdateStatus("Logging in to trakt.tv...");
var response = TraktAPI.TraktAPI.GetUserToken();
if (response == null || string.IsNullOrEmpty(response.Token))
{
UIUtils.UpdateStatus("Unable to login to trakt, check log for details", true);
SetControlState(true);
importRunning = false;
importCancelled = false;
maintenanceRunning = false;
return false;
}
return true;
}
else
{
// exchange pin-code for access token or refresh existing token
UIUtils.UpdateStatus("Exchanging {0} for access-token...", pinCode.Length == 8 ? "pin-code" : "refresh-token");
var response = TraktAPI.TraktAPI.GetOAuthToken(pinCode.Length == 8 ? pinCode : AppSettings.TraktOAuthToken);
if (response == null || string.IsNullOrEmpty(response.AccessToken))
{
UIUtils.UpdateStatus("Unable to login to trakt, check log for details", true);
SetControlState(true);
importRunning = false;
importCancelled = false;
maintenanceRunning = false;
pinCode = string.Empty;
return false;
}
// save the refresh-token for next time
AppSettings.TraktOAuthToken = response.RefreshToken;
pinCode = string.Empty;
return true;
}
}