private void AccountSelected(Account account) { var a = account as Account; //If the account doesn't remember the password we need to prompt if (a.DontRemember) { DoLoginStuff(account.Username); } //Change the user! else { Utils.Login.LoginAccount(account.Username, a.Password, this, (ex) => { DoLoginStuff(account.Username); }); } }
public static void LoginAccount(string user, string pass, UIViewController ctrl, Action<Exception> error = null) { //Does this user exist? var account = Application.Accounts.Find(user); var exists = account != null; if (!exists) account = new Account { Username = user, Password = pass }; ctrl.DoWork("Logging in...", () => { BitbucketSharp.Models.UsersModel userInfo; try { var client = new BitbucketSharp.Client(user, pass) { Timeout = 30 * 1000 }; userInfo = client.Account.GetInfo(); } catch (Exception) { throw new Exception("Unable to login as user " + account.Username + ". Please check your credentials and try again. Remember, credentials are case sensitive!"); } account.FullName = (userInfo.User.FirstName ?? string.Empty) + " " + (userInfo.User.LastName ?? string.Empty); account.Username = userInfo.User.Username; account.Password = pass; account.AvatarUrl = userInfo.User.Avatar; if (exists) Application.Accounts.Update(account); else Application.Accounts.Insert(account); Application.SetUser(account); ctrl.InvokeOnMainThread(TransitionToSlideout); }, (ex) => { Console.WriteLine(ex.Message); //If there is a login failure, unset the user Application.SetUser(null); //Show an alert and trigger the callback when the user dismisses it Utilities.ShowAlert("Unable to Authenticate", ex.Message, () => { if (error != null) error(ex); }); }); }
public override void ViewWillAppear(bool animated) { base.ViewWillAppear(animated); //This shouldn't happen if (Application.Account == null) return; //Determine which menu to instantiate by the account type! MenuView = new MenuController(); //The previous user was returning from the settings menu. Nothing has changed as far as current user goes if (Application.Account.Equals(_previousUser)) return; _previousUser = Application.Account; //Select a view based on the account type SelectView(new CodeBucket.Bitbucket.Controllers.Events.EventsController(Application.Account.Username)); }
public static void SetUser(Account account) { if (account == null) { Account = null; Client = null; Accounts.SetDefault(null); return; } Account = account; Accounts.SetDefault(Account); //Release the cache Client = new BitbucketSharp.Client(Account.Username, Account.Password) { Timeout = 1000 * 30, //30 seconds CacheProvider = new AppCache(), }; }
public AccountElement(Account account) : base(account.Username) { Account = account; Image = CodeFramework.Images.Misc.Anonymous; if (!string.IsNullOrEmpty(Account.AvatarUrl)) this.ImageUri = new Uri(Account.AvatarUrl); }