public async Task <IWriterResult> UpdateApiSettings(string userId, UpdateApiModel model) { try { using (var context = DataContextFactory.CreateContext()) { var user = await context.Users.FirstOrDefaultAsync(u => u.Id == userId).ConfigureAwait(false); if (user == null) { return(new WriterResult(false, "User not found.")); } model.OldApiKey = user.ApiKey; user.IsApiEnabled = model.IsApiEnabled; user.IsApiWithdrawEnabled = model.IsApiWithdrawEnabled; user.IsApiUnsafeWithdrawEnabled = model.IsApiUnsafeWithdrawEnabled; user.ApiKey = model.ApiKey; user.ApiSecret = model.ApiSecret; await context.SaveChangesWithAuditAsync().ConfigureAwait(false); await UserSyncService.SyncUser(user.Id).ConfigureAwait(false); return(new WriterResult(true, "Successfully updated API settings.")); } } catch (Exception) { return(new WriterResult(false)); } }
public async Task <ActionResult> UpdateApiSettings(UpdateApiModel model) { if (!ModelState.IsValid) { return(PartialView("_UpdateApi", model)); } if (!await IsSettingsUnlocked()) { ModelState.AddModelError("Error", Resources.User.securityUnlockTokenExpiredError); return(PartialView("_UpdateApi", model)); } var result = await UserSecurityWriter.UpdateApiSettings(User.Identity.GetUserId(), model); if (!ModelState.IsWriterResultValid(result)) { return(PartialView("_UpdateApi", model)); } await UserSyncService.SyncUser(User.Identity.GetUserId()); await ApiKeyStore.UpdateApiAuthKey(model); return(PartialView("_UpdateApi", model)); }
public static async Task <bool> UpdateApiAuthKey(UpdateApiModel apiData) { await _rediscache.RemoveAsync(apiData.OldApiKey); var result = await GetApiAuthKey(apiData.ApiKey); return(result != null); }