private async Task ApplySecrets(string slotName, List <RegeneratedSecret> secrets) { if (secrets.Count > 1 && secrets.Select(s => s.UserHint).Distinct().Count() != secrets.Count) { throw new Exception("Multiple secrets sent to Provider but without distinct UserHints!"); } IUpdate <IDeploymentSlot> updateBase = (await GetDeploymentSlot(slotName)).Update(); foreach (RegeneratedSecret secret in secrets) { var appSettingName = string.IsNullOrEmpty(secret.UserHint) ? Configuration.SettingName : $"{Configuration.SettingName}-{secret.UserHint}"; _logger.LogInformation("Updating AppSetting '{AppSettingName}' in slot '{SlotName}' (as {AppSettingType})", appSettingName, slotName, Configuration.CommitAsConnectionString ? "connection string" : "secret"); updateBase = updateBase.WithAppSetting(appSettingName, Configuration.CommitAsConnectionString ? secret.NewConnectionStringOrKey : secret.NewSecretValue); } _logger.LogInformation("Applying changes."); await updateBase.ApplyAsync(); _logger.LogInformation("Swapping to '{SlotName}'", slotName); await(await GetWebApp()).SwapAsync(slotName); }