public async Task UpdateFacebookUrlProfile(int accountid, AccountProviderNames provider, string urlFacebookProfile) { var filter = new AccountProviderSpecification(accountid, provider); var accountProvider = await _accountProviderRepository.GetSingleBySpecAsync(filter); accountProvider.Link = urlFacebookProfile; await _accountProviderRepository.UpdateAsync(accountProvider); }
public async Task <AccountProviderViewModel> GetAccountProviderByProvider(AccountProviderNames provider, string providerid, string newtoken) { var filter = new AccountProviderSpecification(provider, providerid); var accountProvider = await _accountProviderRepository.GetSingleBySpecAsync(filter); if (accountProvider != null) { return(new AccountProviderViewModel(accountProvider)); } return(null); }
public async Task <IActionResult> GetUserInfo(AccountProviderNames provider, string token) { var loginInfo = provider == AccountProviderNames.Facebook ? await _facebookHelper.GetLoginProviderAsync(token) : await SocialHelper.VerifyGoogleTokenAsync(token); if (loginInfo == null) { this.AddAlertDanger($"Lỗi khi lấy thông tin từ hệ thống {provider}. Xin vui lòng thử lại. Token {token}"); return(RedirectToAction("Login")); } var accountProvider = await _accountService.GetAccountProviderByProvider(provider, loginInfo.ProviderId, token); if (accountProvider.FbProfileLink.Contains("facebook.com/app_scoped_user_id")) { return(RedirectToAction("ChangeFacebookUrl", "Account")); } var accountProviderExist = accountProvider != null; var auth = await _accountService.GetAuth(loginInfo); if (auth == null) { this.AddAlertDanger("Lỗi khi lấy thông tin đăng nhập. Tài khoản đã bị khóa hoặc xóa. Xin vui lòng liên hệ quản trị hệ thống"); return(RedirectToAction("Login")); } if (provider == AccountProviderNames.Facebook) { BackgroundJob.Enqueue <IFacebookJob>(m => m.ExtendAccessToken()); if (!accountProviderExist) { BackgroundJob.Enqueue <IFacebookJob>(m => m.UpdateFbPost(auth.Id, auth.Username, 1)); } } await SignIn(auth); return(RedirectToAction("Index", "Account")); }
public async Task <IActionResult> LinkProvider(AccountProviderNames provider, string token, string returnurl) { var info = provider == AccountProviderNames.Facebook ? await _facebookHelper.GetLoginProviderAsync(token) : await SocialHelper.VerifyGoogleTokenAsync(token); if (info == null) { this.AddAlertDanger($"Lỗi khi lấy thông tin từ hệ thống {provider}. Xin vui lòng thử lại. Token {token}"); } else { var r = await _accountService.UpdateAccountProvider(CurrentUser.Id, new UpdateAccountProviderViewModel() { Email = info.Email, Image = info.Image, Name = info.Name, Provider = provider, ProviderId = info.ProviderId }, CurrentUser.Username); if (r < 0) { this.AddAlertDanger($"Tài khoản {info.Provider} đã được liên kết với tài khoản khác. Vui lòng thử lại tài khoản khác"); } else { BackgroundJob.Enqueue <IFacebookJob>(m => m.ExtendAccessToken()); this.AddAlertSuccess($"Liên kết Tài khoản {info.Provider} thành công"); if (r == 2) { // tao moi fb id -> add new FbPost tu 2018 BackgroundJob.Enqueue <IFacebookJob>(m => m.UpdateFbPost(CurrentUser.Id, CurrentUser.Username, 1)); } } } if (!string.IsNullOrEmpty(returnurl)) { return(Redirect(returnurl)); } return(RedirectToAction("Index")); }
public async Task <string> GetProviderIdByAccount(int accountid, AccountProviderNames provider) { var accountProvider = await GetAccountProviderByAccount(accountid, provider); return(accountProvider != null ? accountProvider.ProviderId : string.Empty); }
public async Task <AccountProviderViewModel> GetAccountProviderByAccount(int accountid, AccountProviderNames provider) { var filter = new AccountProviderSpecification(accountid, provider); var accountProvider = await _accountProviderRepository.GetSingleBySpecAsync(filter); return(accountProvider != null ? new AccountProviderViewModel(accountProvider) : null); }
public async Task <List <AccountProviderViewModel> > GetAccountProvidersByExpiredToken(AccountProviderNames provider) { var filter = new AccountProviderByExpiredTokenSpecification(provider); var accountProviders = await _accountProviderRepository.ListAsync(filter); return(AccountProviderViewModel.GetList(accountProviders)); }
public AccountProviderByExpiredTokenSpecification(AccountProviderNames provider) : base(m => m.Provider == provider && m.Expired < DateTime.Now.AddHours(2)) { }
public AccountProviderSpecification(AccountProviderNames provider, string providerid) : base(m => m.ProviderId == providerid && m.Provider == provider) { }
public AccountProviderSpecification(int accountid, AccountProviderNames provider) : base(m => (m.AccountId == accountid || accountid == 0) && m.Provider == provider) { }