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");
                   });

                }

            }
        }
Пример #2
0
        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");
                        });
                    }
                }
            }
        }