Exemple #1
0
        /// <summary>
        /// Execute the cmdlet
        /// </summary>
        protected override void ProcessRecordInternal()
        {
            AutoscaleSettingCreateOrUpdateParameters parameters = this.CreateSdkCallParameters();
            var result = this.InsightsManagementClient.AutoscaleOperations.CreateOrUpdateSettingAsync(resourceGroupName: this.ResourceGroup, autoscaleSettingName: this.Name, parameters: parameters).Result;

            WriteObject(result);
        }
        public AddAutoscaleSettingCommandTests()
        {
            insightsAutoscaleOperationsMock = new Mock <IAutoscaleOperations>();
            insightsManagementClientMock    = new Mock <InsightsManagementClient>();
            commandRuntimeMock = new Mock <ICommandRuntime>();
            cmdlet             = new AddAutoscaleSettingCommand()
            {
                CommandRuntime           = commandRuntimeMock.Object,
                InsightsManagementClient = insightsManagementClientMock.Object
            };

            response = new AzureOperationResponse()
            {
                RequestId  = Guid.NewGuid().ToString(),
                StatusCode = HttpStatusCode.OK,
            };

            insightsAutoscaleOperationsMock.Setup(f => f.CreateOrUpdateSettingAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <AutoscaleSettingCreateOrUpdateParameters>(), It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult <AzureOperationResponse>(response))
            .Callback((string resourceGrp, string settingNm, AutoscaleSettingCreateOrUpdateParameters createOrUpdateParams, CancellationToken t) =>
            {
                resourceGroup      = resourceGrp;
                settingName        = settingNm;
                createOrUpdatePrms = createOrUpdateParams;
            });

            insightsManagementClientMock.SetupGet(f => f.AutoscaleOperations).Returns(this.insightsAutoscaleOperationsMock.Object);
        }
        public AddAzureRmAutoscaleSettingTests(Xunit.Abstractions.ITestOutputHelper output)
        {
            ServiceManagemenet.Common.Models.XunitTracingInterceptor.AddToContext(new ServiceManagemenet.Common.Models.XunitTracingInterceptor(output));
            insightsAutoscaleOperationsMock = new Mock <IAutoscaleOperations>();
            insightsManagementClientMock    = new Mock <InsightsManagementClient>();
            commandRuntimeMock = new Mock <ICommandRuntime>();
            cmdlet             = new AddAzureRmAutoscaleSettingCommand()
            {
                CommandRuntime           = commandRuntimeMock.Object,
                InsightsManagementClient = insightsManagementClientMock.Object
            };

            response = new AzureOperationResponse()
            {
                RequestId  = Guid.NewGuid().ToString(),
                StatusCode = HttpStatusCode.OK,
            };

            insightsAutoscaleOperationsMock.Setup(f => f.CreateOrUpdateSettingAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <AutoscaleSettingCreateOrUpdateParameters>(), It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult <AzureOperationResponse>(response))
            .Callback((string resourceGrp, string settingNm, AutoscaleSettingCreateOrUpdateParameters createOrUpdateParams, CancellationToken t) =>
            {
                resourceGroup      = resourceGrp;
                settingName        = settingNm;
                createOrUpdatePrms = createOrUpdateParams;
            });

            insightsManagementClientMock.SetupGet(f => f.AutoscaleOperations).Returns(this.insightsAutoscaleOperationsMock.Object);
        }
        /// <summary>
        /// Execute the cmdlet
        /// </summary>
        protected override void ProcessRecordInternal()
        {
            WriteWarning("This cmdlet is being modified to enable better experience and may contain breaking changes in a future release.");

            AutoscaleSettingCreateOrUpdateParameters parameters = this.CreateSdkCallParameters();

            var result = this.InsightsManagementClient.AutoscaleOperations.CreateOrUpdateSettingAsync(resourceGroupName: this.ResourceGroup, autoscaleSettingName: this.Name, parameters: parameters).Result;

            WriteObject(result);
        }
Exemple #5
0
        public void CreateOrUpdateSettingTest()
        {
            var handler = new RecordedDelegatingHandler();
            InsightsManagementClient customClient = this.GetInsightsManagementClient(handler);

            AutoscaleSettingCreateOrUpdateParameters parameters = new AutoscaleSettingCreateOrUpdateParameters
            {
                Properties = CreateAutoscaleSetting(ResourceUri, "CpuPercentage", string.Empty),
                Location   = "East US",
                Tags       = new Dictionary <string, string> {
                    { "tag1", "value1" }
                }
            };

            customClient.AutoscaleOperations.CreateOrUpdateSetting("resourceGroup1", "setting1", parameters);
            var actualResponse = JsonExtensions.FromJson <AutoscaleSettingCreateOrUpdateParameters>(handler.Request);

            AreEqual(parameters.Properties, actualResponse.Properties);
        }
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.WindowsAzure.Management.Monitoring.Autoscale.ISettingOperations.
 /// </param>
 /// <param name='resourceId'>
 /// The resource ID.
 /// </param>
 /// <param name='parameters'>
 /// Parameters supplied to the operation.
 /// </param>
 /// <returns>
 /// A standard service response including an HTTP status code and
 /// request ID.
 /// </returns>
 public static Task <OperationResponse> CreateOrUpdateAsync(this ISettingOperations operations, string resourceId, AutoscaleSettingCreateOrUpdateParameters parameters)
 {
     return(operations.CreateOrUpdateAsync(resourceId, parameters, CancellationToken.None));
 }
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.WindowsAzure.Management.Monitoring.Autoscale.ISettingOperations.
 /// </param>
 /// <param name='resourceId'>
 /// The resource ID.
 /// </param>
 /// <param name='parameters'>
 /// Parameters supplied to the operation.
 /// </param>
 /// <returns>
 /// A standard service response including an HTTP status code and
 /// request ID.
 /// </returns>
 public static OperationResponse CreateOrUpdate(this ISettingOperations operations, string resourceId, AutoscaleSettingCreateOrUpdateParameters parameters)
 {
     try
     {
         return(operations.CreateOrUpdateAsync(resourceId, parameters).Result);
     }
     catch (AggregateException ex)
     {
         if (ex.InnerExceptions.Count > 1)
         {
             throw;
         }
         else
         {
             throw ex.InnerException;
         }
     }
 }
Exemple #8
0
        /// <param name='resourceId'>
        /// Required. The resource ID.
        /// </param>
        /// <param name='parameters'>
        /// Required. Parameters supplied to the operation.
        /// </param>
        /// <param name='cancellationToken'>
        /// Cancellation token.
        /// </param>
        /// <returns>
        /// A standard service response including an HTTP status code and
        /// request ID.
        /// </returns>
        public async System.Threading.Tasks.Task <OperationResponse> CreateOrUpdateAsync(string resourceId, AutoscaleSettingCreateOrUpdateParameters parameters, CancellationToken cancellationToken)
        {
            // Validate
            if (resourceId == null)
            {
                throw new ArgumentNullException("resourceId");
            }
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

            // Tracing
            bool   shouldTrace  = CloudContext.Configuration.Tracing.IsEnabled;
            string invocationId = null;

            if (shouldTrace)
            {
                invocationId = Tracing.NextInvocationId.ToString();
                Dictionary <string, object> tracingParameters = new Dictionary <string, object>();
                tracingParameters.Add("resourceId", resourceId);
                tracingParameters.Add("parameters", parameters);
                Tracing.Enter(invocationId, this, "CreateOrUpdateAsync", tracingParameters);
            }

            // Construct URL
            string url = "/" + (this.Client.Credentials.SubscriptionId != null ? this.Client.Credentials.SubscriptionId.Trim() : "") + "/services/monitoring/autoscalesettings?";

            url = url + "resourceId=" + Uri.EscapeDataString(resourceId.Trim());
            string baseUrl = this.Client.BaseUri.AbsoluteUri;

            // Trim '/' character from the end of baseUrl and beginning of url.
            if (baseUrl[baseUrl.Length - 1] == '/')
            {
                baseUrl = baseUrl.Substring(0, baseUrl.Length - 1);
            }
            if (url[0] == '/')
            {
                url = url.Substring(1);
            }
            url = baseUrl + "/" + url;
            url = url.Replace(" ", "%20");

            // Create HTTP transport objects
            HttpRequestMessage httpRequest = null;

            try
            {
                httpRequest            = new HttpRequestMessage();
                httpRequest.Method     = HttpMethod.Put;
                httpRequest.RequestUri = new Uri(url);

                // Set Headers
                httpRequest.Headers.Add("Accept", "application/json");
                httpRequest.Headers.Add("x-ms-version", "2013-10-01");

                // Set Credentials
                cancellationToken.ThrowIfCancellationRequested();
                await this.Client.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false);

                // Serialize Request
                string requestContent = null;
                JToken requestDoc     = null;

                JObject autoscaleSettingCreateOrUpdateParametersValue = new JObject();
                requestDoc = autoscaleSettingCreateOrUpdateParametersValue;

                if (parameters.Setting != null)
                {
                    if (parameters.Setting.Profiles != null)
                    {
                        JArray profilesArray = new JArray();
                        foreach (AutoscaleProfile profilesItem in parameters.Setting.Profiles)
                        {
                            JObject autoscaleProfileValue = new JObject();
                            profilesArray.Add(autoscaleProfileValue);

                            if (profilesItem.Name != null)
                            {
                                autoscaleProfileValue["Name"] = profilesItem.Name;
                            }

                            if (profilesItem.Capacity != null)
                            {
                                JObject capacityValue = new JObject();
                                autoscaleProfileValue["Capacity"] = capacityValue;

                                if (profilesItem.Capacity.Minimum != null)
                                {
                                    capacityValue["Minimum"] = profilesItem.Capacity.Minimum;
                                }

                                if (profilesItem.Capacity.Maximum != null)
                                {
                                    capacityValue["Maximum"] = profilesItem.Capacity.Maximum;
                                }

                                if (profilesItem.Capacity.Default != null)
                                {
                                    capacityValue["Default"] = profilesItem.Capacity.Default;
                                }
                            }

                            if (profilesItem.Rules != null)
                            {
                                JArray rulesArray = new JArray();
                                foreach (ScaleRule rulesItem in profilesItem.Rules)
                                {
                                    JObject scaleRuleValue = new JObject();
                                    rulesArray.Add(scaleRuleValue);

                                    if (rulesItem.MetricTrigger != null)
                                    {
                                        JObject metricTriggerValue = new JObject();
                                        scaleRuleValue["MetricTrigger"] = metricTriggerValue;

                                        if (rulesItem.MetricTrigger.MetricName != null)
                                        {
                                            metricTriggerValue["MetricName"] = rulesItem.MetricTrigger.MetricName;
                                        }

                                        if (rulesItem.MetricTrigger.MetricNamespace != null)
                                        {
                                            metricTriggerValue["MetricNamespace"] = rulesItem.MetricTrigger.MetricNamespace;
                                        }

                                        if (rulesItem.MetricTrigger.MetricSource != null)
                                        {
                                            metricTriggerValue["MetricSource"] = rulesItem.MetricTrigger.MetricSource;
                                        }

                                        metricTriggerValue["TimeGrain"] = TypeConversion.To8601String(rulesItem.MetricTrigger.TimeGrain);

                                        metricTriggerValue["Statistic"] = rulesItem.MetricTrigger.Statistic.ToString();

                                        metricTriggerValue["TimeWindow"] = TypeConversion.To8601String(rulesItem.MetricTrigger.TimeWindow);

                                        metricTriggerValue["TimeAggregation"] = rulesItem.MetricTrigger.TimeAggregation.ToString();

                                        metricTriggerValue["Operator"] = rulesItem.MetricTrigger.Operator.ToString();

                                        metricTriggerValue["Threshold"] = rulesItem.MetricTrigger.Threshold;
                                    }

                                    if (rulesItem.ScaleAction != null)
                                    {
                                        JObject scaleActionValue = new JObject();
                                        scaleRuleValue["ScaleAction"] = scaleActionValue;

                                        scaleActionValue["Direction"] = rulesItem.ScaleAction.Direction.ToString();

                                        scaleActionValue["Type"] = rulesItem.ScaleAction.Type.ToString();

                                        if (rulesItem.ScaleAction.Value != null)
                                        {
                                            scaleActionValue["Value"] = rulesItem.ScaleAction.Value;
                                        }

                                        scaleActionValue["Cooldown"] = TypeConversion.To8601String(rulesItem.ScaleAction.Cooldown);
                                    }
                                }
                                autoscaleProfileValue["Rules"] = rulesArray;
                            }

                            if (profilesItem.FixedDate != null)
                            {
                                JObject fixedDateValue = new JObject();
                                autoscaleProfileValue["FixedDate"] = fixedDateValue;

                                if (profilesItem.FixedDate.TimeZone != null)
                                {
                                    fixedDateValue["TimeZone"] = profilesItem.FixedDate.TimeZone;
                                }

                                fixedDateValue["Start"] = profilesItem.FixedDate.Start;

                                fixedDateValue["End"] = profilesItem.FixedDate.End;
                            }

                            if (profilesItem.Recurrence != null)
                            {
                                JObject recurrenceValue = new JObject();
                                autoscaleProfileValue["Recurrence"] = recurrenceValue;

                                recurrenceValue["Frequency"] = profilesItem.Recurrence.Frequency.ToString();

                                if (profilesItem.Recurrence.Schedule != null)
                                {
                                    JObject scheduleValue = new JObject();
                                    recurrenceValue["Schedule"] = scheduleValue;

                                    if (profilesItem.Recurrence.Schedule.TimeZone != null)
                                    {
                                        scheduleValue["TimeZone"] = profilesItem.Recurrence.Schedule.TimeZone;
                                    }

                                    if (profilesItem.Recurrence.Schedule.Days != null)
                                    {
                                        JArray daysArray = new JArray();
                                        foreach (string daysItem in profilesItem.Recurrence.Schedule.Days)
                                        {
                                            daysArray.Add(daysItem);
                                        }
                                        scheduleValue["Days"] = daysArray;
                                    }

                                    if (profilesItem.Recurrence.Schedule.Hours != null)
                                    {
                                        JArray hoursArray = new JArray();
                                        foreach (int hoursItem in profilesItem.Recurrence.Schedule.Hours)
                                        {
                                            hoursArray.Add(hoursItem);
                                        }
                                        scheduleValue["Hours"] = hoursArray;
                                    }

                                    if (profilesItem.Recurrence.Schedule.Minutes != null)
                                    {
                                        JArray minutesArray = new JArray();
                                        foreach (int minutesItem in profilesItem.Recurrence.Schedule.Minutes)
                                        {
                                            minutesArray.Add(minutesItem);
                                        }
                                        scheduleValue["Minutes"] = minutesArray;
                                    }
                                }
                            }
                        }
                        autoscaleSettingCreateOrUpdateParametersValue["Profiles"] = profilesArray;
                    }

                    autoscaleSettingCreateOrUpdateParametersValue["Enabled"] = parameters.Setting.Enabled;
                }

                requestContent      = requestDoc.ToString(Formatting.Indented);
                httpRequest.Content = new StringContent(requestContent, Encoding.UTF8);
                httpRequest.Content.Headers.ContentType         = new MediaTypeHeaderValue("application/json");
                httpRequest.Content.Headers.ContentType.CharSet = "utf-8";

                // Send Request
                HttpResponseMessage httpResponse = null;
                try
                {
                    if (shouldTrace)
                    {
                        Tracing.SendRequest(invocationId, httpRequest);
                    }
                    cancellationToken.ThrowIfCancellationRequested();
                    httpResponse = await this.Client.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false);

                    if (shouldTrace)
                    {
                        Tracing.ReceiveResponse(invocationId, httpResponse);
                    }
                    HttpStatusCode statusCode = httpResponse.StatusCode;
                    if (statusCode != HttpStatusCode.OK && statusCode != HttpStatusCode.Created)
                    {
                        cancellationToken.ThrowIfCancellationRequested();
                        CloudException ex = CloudException.Create(httpRequest, requestContent, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false));
                        if (shouldTrace)
                        {
                            Tracing.Error(invocationId, ex);
                        }
                        throw ex;
                    }

                    // Create Result
                    OperationResponse result = null;
                    result            = new OperationResponse();
                    result.StatusCode = statusCode;
                    if (httpResponse.Headers.Contains("x-ms-request-id"))
                    {
                        result.RequestId = httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault();
                    }

                    if (shouldTrace)
                    {
                        Tracing.Exit(invocationId, result);
                    }
                    return(result);
                }
                finally
                {
                    if (httpResponse != null)
                    {
                        httpResponse.Dispose();
                    }
                }
            }
            finally
            {
                if (httpRequest != null)
                {
                    httpRequest.Dispose();
                }
            }
        }
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.WindowsAzure.Management.Monitoring.Autoscale.ISettingOperations.
 /// </param>
 /// <param name='resourceId'>
 /// Required. The resource ID.
 /// </param>
 /// <param name='parameters'>
 /// Required. Parameters supplied to the operation.
 /// </param>
 /// <returns>
 /// A standard service response including an HTTP status code and
 /// request ID.
 /// </returns>
 public static AzureOperationResponse CreateOrUpdate(this ISettingOperations operations, string resourceId, AutoscaleSettingCreateOrUpdateParameters parameters)
 {
     return(Task.Factory.StartNew((object s) =>
     {
         return ((ISettingOperations)s).CreateOrUpdateAsync(resourceId, parameters);
     }
                                  , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult());
 }
Exemple #10
0
        public string AutoScaleCloudService(string serviceName, string roleName)
        {
            AutoscaleClient autoscaleClient = new AutoscaleClient(cloudCredentials);

            AutoscaleSettingCreateOrUpdateParameters autoscaleCreateParams = new AutoscaleSettingCreateOrUpdateParameters()
            {
                Setting = new AutoscaleSetting()
                {
                    Enabled  = true,
                    Profiles = new List <AutoscaleProfile>
                    {
                        new AutoscaleProfile
                        {
                            Capacity = new ScaleCapacity
                            {
                                Default = "1",
                                Maximum = "10",
                                Minimum = "1"
                            },
                            Name       = "sampleProfile",
                            Recurrence = new Recurrence
                            {
                                Frequency = RecurrenceFrequency.Week,
                                Schedule  = new RecurrentSchedule
                                {
                                    Days = new List <String> {
                                        "Monday", "Thursday", "Friday"
                                    },
                                    Hours   = { 7, 19 },
                                    Minutes = new List <int> {
                                        0
                                    },
                                    TimeZone = "Eastern Standard Time"
                                }
                            },
                            Rules = new List <ScaleRule>
                            {
                                new ScaleRule
                                {
                                    MetricTrigger = new MetricTrigger
                                    {
                                        MetricName      = "PercentageCPU",
                                        MetricNamespace = "",
                                        MetricSource    = AutoscaleMetricSourceBuilder.BuildCloudServiceMetricSource(serviceName, roleName, true),
                                        Operator        = ComparisonOperationType.GreaterThanOrEqual,
                                        Threshold       = 80,
                                        Statistic       = MetricStatisticType.Average,
                                        TimeGrain       = TimeSpan.FromMinutes(5),
                                        TimeAggregation = TimeAggregationType.Average,
                                        TimeWindow      = TimeSpan.FromMinutes(30)
                                    },
                                    ScaleAction = new ScaleAction
                                    {
                                        Direction = ScaleDirection.Increase,
                                        Cooldown  = TimeSpan.FromMinutes(20),
                                        Type      = ScaleType.ChangeCount,
                                        Value     = "1"
                                    },
                                },
                                new ScaleRule
                                {
                                    MetricTrigger = new MetricTrigger
                                    {
                                        MetricName      = "PercentageCPU",
                                        MetricNamespace = "",
                                        MetricSource    = AutoscaleMetricSourceBuilder.BuildCloudServiceMetricSource(serviceName, roleName, true),
                                        Operator        = ComparisonOperationType.LessThanOrEqual,
                                        Threshold       = 60,
                                        Statistic       = MetricStatisticType.Average,
                                        TimeGrain       = TimeSpan.FromMinutes(5),
                                        TimeAggregation = TimeAggregationType.Average,
                                        TimeWindow      = TimeSpan.FromMinutes(30)
                                    },
                                    ScaleAction = new ScaleAction
                                    {
                                        Direction = ScaleDirection.Decrease,
                                        Cooldown  = TimeSpan.FromMinutes(20),
                                        Type      = ScaleType.ChangeCount,
                                        Value     = "1"
                                    },
                                }
                            }
                        }
                    }
                }
            };


            OperationResponse autoscaleResponse = autoscaleClient.Settings.CreateOrUpdate(
                AutoscaleResourceIdBuilder.BuildCloudServiceResourceId(serviceName, roleName, true),
                autoscaleCreateParams);

            string statusCode = autoscaleResponse.StatusCode.ToString();

            AutoscaleSettingGetResponse settingReponse   = autoscaleClient.Settings.Get(AutoscaleResourceIdBuilder.BuildCloudServiceResourceId(serviceName, roleName, true));
            AutoscaleSetting            autoscaleSetting = settingReponse.Setting;

            return(statusCode);
        }
Exemple #11
0
        public AzureOperationResponse CreateOrUpdateSettings(AutoscaleSettingCreateOrUpdateParameters settings)
        {
            var resourceId = AutoscaleResourceIdBuilder.BuildVirtualMachineResourceId(cloudServiceName, availabilitySetName);

            return(autoscaleClient.Settings.CreateOrUpdate(resourceId, settings));
        }
Exemple #12
0
        public AzureOperationResponse CreateOrUpdateSettings(AutoscaleSettingCreateOrUpdateParameters settings)
        {
            var resourceId = AutoscaleResourceIdBuilder.BuildWebSiteResourceId(this.webspaceName, this.hostingPlanName);

            return(autoscaleClient.Settings.CreateOrUpdate(resourceId, settings));
        }
        public AzureOperationResponse CreateOrUpdateSettings(AutoscaleSettingCreateOrUpdateParameters settings)
        {
            var resourceId = AutoscaleResourceIdBuilder.BuildCloudServiceResourceId(cloudServiceName, roleName, isProduction);

            return(autoscaleClient.Settings.CreateOrUpdate(resourceId, settings));
        }
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.Azure.Management.Insights.IAutoscaleOperations.
 /// </param>
 /// <param name='resourceGroupName'>
 /// Required. The resource name.
 /// </param>
 /// <param name='autoscaleSettingName'>
 /// Required. The autoscale setting name.
 /// </param>
 /// <param name='parameters'>
 /// Required. Parameters supplied to the operation.
 /// </param>
 /// <returns>
 /// A standard service response including an HTTP status code and
 /// request ID.
 /// </returns>
 public static Task <AzureOperationResponse> CreateOrUpdateSettingAsync(this IAutoscaleOperations operations, string resourceGroupName, string autoscaleSettingName, AutoscaleSettingCreateOrUpdateParameters parameters)
 {
     return(operations.CreateOrUpdateSettingAsync(resourceGroupName, autoscaleSettingName, parameters, CancellationToken.None));
 }
Exemple #15
0
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.Azure.Management.Insights.IAutoscaleOperations.
 /// </param>
 /// <param name='resourceGroupName'>
 /// Required. The resource name.
 /// </param>
 /// <param name='autoscaleSettingName'>
 /// Required. The autoscale setting name.
 /// </param>
 /// <param name='parameters'>
 /// Required. Parameters supplied to the operation.
 /// </param>
 /// <returns>
 /// A standard service response including an HTTP status code and
 /// request ID.
 /// </returns>
 public static OperationResponse UpdateSetting(this IAutoscaleOperations operations, string resourceGroupName, string autoscaleSettingName, AutoscaleSettingCreateOrUpdateParameters parameters)
 {
     return(Task.Factory.StartNew((object s) =>
     {
         return ((IAutoscaleOperations)s).UpdateSettingAsync(resourceGroupName, autoscaleSettingName, parameters);
     }
                                  , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult());
 }