private async void DoDisplayStreamingEndpointInfo(IStreamingEndpoint streamingendpoint) { // Refresh the context _context = Program.ConnectAndGetNewContext(_credentials); StreamingEndpointInformation form = new StreamingEndpointInformation() { MyStreamingEndpoint = streamingendpoint, MyContext = _context }; if (form.ShowDialog() == DialogResult.OK) { streamingendpoint.CustomHostNames = form.GetStreamingCustomHostnames; if (form.GetStreamingAllowList != null) { if (streamingendpoint.AccessControl == null) { streamingendpoint.AccessControl = new StreamingEndpointAccessControl(); } streamingendpoint.AccessControl.IPAllowList = form.GetStreamingAllowList; } else { if (streamingendpoint.AccessControl != null) { streamingendpoint.AccessControl.IPAllowList = null; } } if (form.GetStreamingAkamaiList != null) { if (streamingendpoint.AccessControl == null) { streamingendpoint.AccessControl = new StreamingEndpointAccessControl(); } streamingendpoint.AccessControl.AkamaiSignatureHeaderAuthenticationKeyList = form.GetStreamingAkamaiList; } else { if (streamingendpoint.AccessControl != null) { streamingendpoint.AccessControl.AkamaiSignatureHeaderAuthenticationKeyList = null; } } if (form.MaxCacheAge != null) { if (streamingendpoint.CacheControl == null) { streamingendpoint.CacheControl = new StreamingEndpointCacheControl(); } streamingendpoint.CacheControl.MaxAge = form.MaxCacheAge; } else { if (streamingendpoint.CacheControl != null) { streamingendpoint.CacheControl.MaxAge = null; } } // Client Access Policy if (form.GetOriginClientPolicy != null) { if (streamingendpoint.CrossSiteAccessPolicies == null) { streamingendpoint.CrossSiteAccessPolicies = new CrossSiteAccessPolicies(); } streamingendpoint.CrossSiteAccessPolicies.ClientAccessPolicy = form.GetOriginClientPolicy; } else { if (streamingendpoint.CrossSiteAccessPolicies != null) { streamingendpoint.CrossSiteAccessPolicies.ClientAccessPolicy = null; } } // Cross domain Policy if (form.GetOriginCrossdomaintPolicy != null) { if (streamingendpoint.CrossSiteAccessPolicies == null) { streamingendpoint.CrossSiteAccessPolicies = new CrossSiteAccessPolicies(); } streamingendpoint.CrossSiteAccessPolicies.CrossDomainPolicy = form.GetOriginCrossdomaintPolicy; } else { if (streamingendpoint.CrossSiteAccessPolicies != null) { streamingendpoint.CrossSiteAccessPolicies.CrossDomainPolicy = null; } } streamingendpoint.Description = form.GetOriginDescription; // Let's take actions now if (streamingendpoint.ScaleUnits != form.GetScaleUnits) { Task.Run(async () => { await StreamingEndpointExecuteOperationAsync(streamingendpoint.SendUpdateOperationAsync, streamingendpoint, "updated"); await ScaleStreamingEndpoint(streamingendpoint, form.GetScaleUnits); }); } else // no scaling { Task.Run(async () => { await StreamingEndpointExecuteOperationAsync(streamingendpoint.SendUpdateOperationAsync, streamingendpoint, "updated"); }); } } }
private async void DoDisplayStreamingEndpointInfo(List<IStreamingEndpoint> streamingendpoints) { // Refresh the context _context = Program.ConnectAndGetNewContext(_credentials); bool multiselection = streamingendpoints.Count > 1; StreamingEndpointInformation form = new StreamingEndpointInformation() { MyStreamingEndpoint = streamingendpoints.FirstOrDefault(), MyContext = _context, MultipleSelection = multiselection }; if (form.ShowDialog() == DialogResult.OK) { var modifications = form.Modifications; if (multiselection) { var formSettings = new SettingsSelection("streaming endpoints", modifications); if (formSettings.ShowDialog() != DialogResult.OK) { return; } else { modifications = (ExplorerSEModifications)formSettings.SettingsObject; } } foreach (var streamingendpoint in streamingendpoints) { if (modifications.CustomHostNames) { streamingendpoint.CustomHostNames = form.GetStreamingCustomHostnames; } if (modifications.StreamingAllowedIPAddresses) { if (form.GetStreamingAllowList != null) { if (streamingendpoint.AccessControl == null) { streamingendpoint.AccessControl = new StreamingEndpointAccessControl(); } streamingendpoint.AccessControl.IPAllowList = form.GetStreamingAllowList; } else { if (streamingendpoint.AccessControl != null) { streamingendpoint.AccessControl.IPAllowList = null; } } } if (modifications.AkamaiSignatureHeaderAuthentication) { if (form.GetStreamingAkamaiList != null) { if (streamingendpoint.AccessControl == null) { streamingendpoint.AccessControl = new StreamingEndpointAccessControl(); } streamingendpoint.AccessControl.AkamaiSignatureHeaderAuthenticationKeyList = form.GetStreamingAkamaiList; } else { if (streamingendpoint.AccessControl != null) { streamingendpoint.AccessControl.AkamaiSignatureHeaderAuthenticationKeyList = null; } } } if (modifications.MaxCacheAge) { if (form.MaxCacheAge != null) { if (streamingendpoint.CacheControl == null) { streamingendpoint.CacheControl = new StreamingEndpointCacheControl(); } streamingendpoint.CacheControl.MaxAge = form.MaxCacheAge; } else { if (streamingendpoint.CacheControl != null) { streamingendpoint.CacheControl.MaxAge = null; } } } // Client Access Policy if (modifications.ClientAccessPolicy) { if (form.GetOriginClientPolicy != null) { if (streamingendpoint.CrossSiteAccessPolicies == null) { streamingendpoint.CrossSiteAccessPolicies = new CrossSiteAccessPolicies(); } streamingendpoint.CrossSiteAccessPolicies.ClientAccessPolicy = form.GetOriginClientPolicy; } else { if (streamingendpoint.CrossSiteAccessPolicies != null) { streamingendpoint.CrossSiteAccessPolicies.ClientAccessPolicy = null; } } } // Cross domain Policy if (modifications.CrossDomainPolicy) { if (form.GetOriginCrossdomaintPolicy != null) { if (streamingendpoint.CrossSiteAccessPolicies == null) { streamingendpoint.CrossSiteAccessPolicies = new CrossSiteAccessPolicies(); } streamingendpoint.CrossSiteAccessPolicies.CrossDomainPolicy = form.GetOriginCrossdomaintPolicy; } else { if (streamingendpoint.CrossSiteAccessPolicies != null) { streamingendpoint.CrossSiteAccessPolicies.CrossDomainPolicy = null; } } } if (modifications.Description) { streamingendpoint.Description = form.GetOriginDescription; } // Let's take actions now if (modifications.StreamingUnits && streamingendpoint.ScaleUnits != form.GetScaleUnits) { Task.Run(async () => { await StreamingEndpointExecuteOperationAsync(streamingendpoint.SendUpdateOperationAsync, streamingendpoint, "updated"); await ScaleStreamingEndpoint(streamingendpoint, form.GetScaleUnits); }); } else // no scaling { Task.Run(async () => { await StreamingEndpointExecuteOperationAsync(streamingendpoint.SendUpdateOperationAsync, streamingendpoint, "updated"); }); } } } }