internal override async Task <SiteInner> SubmitMetadataAsync(SiteInner site, CancellationToken cancellationToken)
        {
            await base.SubmitMetadataAsync(site, cancellationToken);

            if (runtimeStackOnWindowsOSToUpdate != null)
            {
                // list metadata
                StringDictionaryInner metadataInner = await ListMetadataAsync(cancellationToken);

                // merge with change
                metadataInner            = metadataInner ?? new StringDictionaryInner();
                metadataInner.Properties = metadataInner.Properties ?? new Dictionary <string, string>();
                metadataInner.Properties["CURRENT_STACK"] = runtimeStackOnWindowsOSToUpdate.Runtime;
                // update metadata
                await UpdateMetadataAsync(metadataInner);

                // clean up
                runtimeStackOnWindowsOSToUpdate = null;
            }
            return(site);
        }
 public override IUpdate Update()
 {
     runtimeStackOnWindowsOSToUpdate = null;
     return(base.Update());
 }
 WebApp.Update.IUpdate WebApp.Update.IWithWindowsRuntimeStack.WithRuntimeStack(WebAppRuntimeStack runtimeStack)
 {
     return(this.WithRuntimeStack(runtimeStack));
 }
 WebAppImpl WithRuntimeStack(WebAppRuntimeStack runtimeStack)
 {
     runtimeStackOnWindowsOSToUpdate = runtimeStack;
     return(this);
 }
 WebApp.Definition.IWithCreate WebApp.Definition.IWithWindowsRuntimeStack.WithRuntimeStack(WebAppRuntimeStack runtimeStack)
 {
     return(this.WithRuntimeStack(runtimeStack));
 }