public void Insert(BitbucketAccount account) { lock (_userDatabase) { _userDatabase.Insert(account); } }
public async Task <Client> LoginAccount(BitbucketAccount account) { //Create the client Client client = null; // if (!string.IsNullOrEmpty(account.OAuth)) // { // client = Client.BasicOAuth(account.OAuth, account.Domain ?? Client.DefaultApi); // } // else if (account.IsEnterprise || !string.IsNullOrEmpty(account.Password)) // { // client = Client.Basic(account.Username, account.Password, account.Domain ?? Client.DefaultApi); // } // client = new Client(account.Username, account.Password); var data = await Task.Run(() => client.Account.GetInfo(true)); var userInfo = data.User; account.Username = userInfo.Username; account.AvatarUrl = userInfo.Avatar; client.Username = userInfo.Username; _accounts.Update(account); return(client); }
public void Update(BitbucketAccount account) { lock (_userDatabase) { _userDatabase.Update(account); } }
public void ActivateUser(BitbucketAccount account, Client client) { Accounts.SetActiveAccount(account); Account = account; Client = client; _timer.Stop(); _timer.Start(); }
public static NavObject CreateDontRemember(BitbucketAccount account) { return(new NavObject { Username = account.Username, AttemptedAccountId = account.Id }); }
public async Task <Client> LoginAccount(BitbucketAccount account) { //Create the client UsersModel userInfo = null; var client = await Task.Run(() => Client.BearerLogin(account.Token, out userInfo)); account.Username = userInfo.User.Username; account.AvatarUrl = userInfo.User.Avatar.Replace("/avatar/32", "/avatar/64"); _accountsService.Update(account); return(client); }
public void SetDefault(BitbucketAccount account) { if (account == null) { _defaults.Set("DEFAULT_ACCOUNT", null); } else { _defaults.Set("DEFAULT_ACCOUNT", account.Id); } }
public void Init(NavObject navObject) { if (navObject.AttemptedAccountId >= 0) { _attemptedAccount = this.GetApplication().Accounts.Find(navObject.AttemptedAccountId) as BitbucketAccount; } if (_attemptedAccount != null) { Username = _attemptedAccount.Username; } }
/// <summary> /// Called when an account is deleted /// </summary> /// <param name="account">Account.</param> protected void AccountDeleted(BitbucketAccount account) { //Remove the designated username var thisAccount = account; var accountsService = Mvx.Resolve <IAccountsService>(); accountsService.Remove(thisAccount); if (accountsService.ActiveAccount != null && accountsService.ActiveAccount.Equals(thisAccount)) { accountsService.SetActiveAccount(null); } }
public void SetActiveAccount(BitbucketAccount account) { if (account != null) { var accountDir = CreateAccountDirectory(account); if (!Directory.Exists(accountDir)) { Directory.CreateDirectory(accountDir); } } SetDefault(account); ActiveAccount = account; }
public void Remove(BitbucketAccount account) { lock (_userDatabase) { _userDatabase.Delete(account); } var accountDir = CreateAccountDirectory(account); if (!Directory.Exists(accountDir)) { return; } Directory.Delete(accountDir, true); }
public LoginData Authenticate(string user, string pass, BitbucketAccount account) { try { //Make some valid checks if (string.IsNullOrEmpty(user)) { throw new ArgumentException("Username is invalid"); } if (string.IsNullOrEmpty(pass)) { throw new ArgumentException("Password is invalid"); } //Does this user exist? bool exists = account != null; if (!exists) { account = new BitbucketAccount { Username = user } } ; var client = new Client(user, pass); account.Password = pass; var data = client.Account.GetInfo(true); var userInfo = data.User; account.Username = userInfo.Username; account.AvatarUrl = userInfo.Avatar; client.Username = userInfo.Username; if (exists) { _accounts.Update(account); } else { _accounts.Insert(account); } return(new LoginData { Client = client, Account = account }); } catch (StatusCodeException ex) { throw new Exception("Unable to login as user " + user + ". Please check your credentials and try again."); } }
public async void Login(string code) { try { IsLoggingIn = true; var ret = await Task.Run(() => Client.GetAuthorizationCode(ClientId, ClientSecret, code)); var data = await Task.Run(() => { UsersModel u; var c = Client.BearerLogin(ret.AccessToken, out u); return(Tuple.Create(c, u)); }); var bitbucketClient = data.Item1; var usersModel = data.Item2; var account = _accountsService.Find(usersModel.User.Username); if (account == null) { account = new BitbucketAccount() { Username = usersModel.User.Username, AvatarUrl = usersModel.User.Avatar, RefreshToken = ret.RefreshToken, Token = ret.AccessToken }; _accountsService.Insert(account); } else { account.RefreshToken = ret.RefreshToken; account.Token = ret.AccessToken; account.AvatarUrl = usersModel.User.Avatar; _accountsService.Update(account); } this.GetApplication().ActivateUser(account, bitbucketClient); ShowViewModel <StartupViewModel>(); } catch (Exception e) { DisplayAlert("Unable to login: " + e.Message); } finally { IsLoggingIn = false; } }
public void ActivateUser(BitbucketAccount account, Client client) { Accounts.SetActiveAccount(account); Account = account; Client = client; //Set the default account Accounts.SetDefault(account); //Check the cache size CheckCacheSize(account.Cache); //Client.Cache = new GitHubCache(account); // Show the menu & show a page on the slideout _viewDispatcher.ShowViewModel(new MvxViewModelRequest { ViewModelType = typeof(MenuViewModel) }); }
private async Task Login() { try { IsLoggingIn = true; var ret = await Task.Run(() => Client.GetAuthorizationCode(ClientId, ClientSecret, Code)); var data = await Task.Run(() => { UsersModel u; var c = Client.BearerLogin(ret.AccessToken, out u); return(Tuple.Create(c, u)); }); var bitbucketClient = data.Item1; var usersModel = data.Item2; var account = _accountsService.Find(usersModel.User.Username); if (account == null) { account = new BitbucketAccount { Username = usersModel.User.Username, AvatarUrl = usersModel.User.Avatar, RefreshToken = ret.RefreshToken, Token = ret.AccessToken }; _accountsService.Insert(account); } else { account.RefreshToken = ret.RefreshToken; account.Token = ret.AccessToken; account.AvatarUrl = usersModel.User.Avatar; _accountsService.Update(account); } _applicationService.ActivateUser(account, bitbucketClient); } finally { IsLoggingIn = false; } }
private async Task AttemptLogin(BitbucketAccount account) { Uri accountAvatarUri = null; var avatarUrl = account.AvatarUrl; if (!string.IsNullOrEmpty(avatarUrl)) { var match = Regex.Match(avatarUrl, @"&s=(\d+)", RegexOptions.IgnoreCase); if (match.Success && match.Groups.Count > 1) { avatarUrl = avatarUrl.Replace(match.Groups[0].Value, "&s=128"); } } if (Uri.TryCreate(avatarUrl, UriKind.Absolute, out accountAvatarUri)) { Avatar = new Avatar(accountAvatarUri.AbsoluteUri); } var client = await LoginAccount(account); _applicationService.ActivateUser(account, client); }
public AccountElement(BitbucketAccount account) : base(account.Username, string.Empty, string.Empty, account.AvatarUrl) { Account = account; }
private void SelectAccount(BitbucketAccount account) { _accountsService.SetActiveAccount(account); ShowViewModel <CodeBucket.Core.ViewModels.App.StartupViewModel>(); }
protected string CreateAccountDirectory(BitbucketAccount account) { return(Path.Combine(_accountsPath, account.Id.ToString(CultureInfo.InvariantCulture))); }
public bool Exists(BitbucketAccount account) { return(Find(account.Id) != null); }
public async Task <LoginData> LoginWithToken(string clientId, string clientSecret, string code, string redirect, string requestDomain, string apiDomain, BitbucketAccount account) { // var token = await Task.Run(() => Client.RequestAccessToken(clientId, clientSecret, code, redirect, requestDomain)); // var client = Client.BasicOAuth(token.AccessToken, apiDomain); // var info = await client.ExecuteAsync(client.AuthenticatedUser.GetInfo()); // var username = info.Data.Login; // // //Does this user exist? // var exists = account != null; // if (!exists) // account = new GitHubAccount { Username = username }; // account.OAuth = token.AccessToken; // account.AvatarUrl = info.Data.AvatarUrl; // account.Domain = apiDomain; // account.WebDomain = requestDomain; // client.Username = username; // // if (exists) // _accounts.Update(account); // else // _accounts.Insert(account); // return new LoginData { Client = client, Account = account }; return(null); }