public async Task <Client> LoginAccount(GitHubAccount 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); } var data = await client.ExecuteAsync(client.AuthenticatedUser.GetInfo()); var userInfo = data.Data; account.Username = userInfo.Login; account.AvatarUrl = userInfo.AvatarUrl; client.Username = userInfo.Login; if (_accounts.Exists(account)) { _accounts.Update(account); } else { _accounts.Insert(account); } return(client); }
public async Task <IActionResult> LogInCallBack() { if (!(await _accountsService.Exists(User.GetNameIdentifier()))) { Account account = new Account { Id = Guid.NewGuid(), NameIdentifier = User.GetNameIdentifier(), Name = User.GetName(), Email = User.GetEmail(), Picture = User.GetProfileImage() }; await _accountsService.CreateAccount(account); } return(Redirect(TempData["returnUrl"].ToString())); }