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 <IFunctionDeploymentSlot> updateBase = (await GetDeploymentSlot(TemporarySlotName)).Update(); foreach (RegeneratedSecret secret in secrets) { var connectionStringName = string.IsNullOrEmpty(secret.UserHint) ? Configuration.ConnectionStringName : $"{Configuration.ConnectionStringName}-{secret.UserHint}"; Logger.LogInformation("Updating Connection String '{0}' in slot '{1}'", connectionStringName, TemporarySlotName); updateBase = updateBase.WithoutConnectionString(connectionStringName); updateBase = updateBase.WithConnectionString(connectionStringName, secret.NewConnectionStringOrKey, Configuration.ConnectionStringType); } Logger.LogInformation("Applying changes."); await updateBase.ApplyAsync(); Logger.LogInformation("Swapping to '{0}'", TemporarySlotName); await(await GetFunctionsApp()).SwapAsync(TemporarySlotName); }