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);
         });
     }
 }
Пример #2
0
        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));
        }
Пример #4
0
        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);
 }