Esempio n. 1
0
        public async Task <SignalRResource> CreateAsync(
            IResourceGroup resourceGroup,
            string signalRName,
            IDictionary <string, string> tags   = default,
            CancellationToken cancellationToken = default
            )
        {
            try {
                tags = tags ?? new Dictionary <string, string>();

                Log.Information($"Creating SignalR Service: {signalRName} ...");

                // Constructor of SignalRFeature will set Flag to "ServiceMode".
                // Bug report for adding feature to explicitly set the Flag to "ServiceMode":
                // https://github.com/Azure/azure-sdk-for-net/issues/8806
                var serviceModeFeature = new SignalRFeature {
                    Value = "Default"
                };

                var signalRCreateParameters = new SignalRCreateParameters()
                {
                    Location = resourceGroup.RegionName,
                    Tags     = tags,

                    Sku = new ResourceSku {
                        Name     = "Standard_S1",
                        Tier     = "Standard",
                        Capacity = 1,
                    },
                    Properties = new SignalRCreateOrUpdateProperties {
                        HostNamePrefix = signalRName,
                        Features       = new List <SignalRFeature> {
                            serviceModeFeature
                        }
                    }
                };

                signalRCreateParameters.Validate();

                var signalR = await _signalRManagementClient
                              .SignalR
                              .CreateOrUpdateAsync(
                    resourceGroup.Name,
                    signalRName,
                    signalRCreateParameters,
                    cancellationToken
                    );

                Log.Information($"Created SignalR Service: {signalRName}");

                return(signalR);
            }
            catch (Exception ex) {
                Log.Error(ex, $"Failed ot create SignalR Service: {signalRName}");
                throw;
            }
        }
Esempio n. 2
0
 public PSSignalRFeature(SignalRFeature signalrFeature)
 {
     Flag       = SignalRFeature.Flag;
     Value      = signalrFeature.Value;
     Properties = signalrFeature.Properties;
 }
Esempio n. 3
0
        /// <summary>
        /// Create a Standard tier Serverless instance of SignalR service in the given resource group.
        /// </summary>
        /// <param name="resourceGroup"></param>
        /// <param name="signalRName"></param>
        /// <param name="tags"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task <SignalRResource> CreateAsync(
            IResourceGroup resourceGroup,
            string signalRName,
            IDictionary <string, string> tags   = null,
            CancellationToken cancellationToken = default
            )
        {
            if (resourceGroup is null)
            {
                throw new ArgumentNullException(nameof(resourceGroup));
            }
            if (string.IsNullOrEmpty(signalRName))
            {
                throw new ArgumentNullException(nameof(signalRName));
            }

            try {
                tags ??= new Dictionary <string, string>();

                Log.Information($"Creating SignalR Service: {signalRName} ...");

                var serviceModeFeature = new SignalRFeature {
                    Flag  = ServiceMode.Serverless.Flag,
                    Value = ServiceMode.Serverless.Value
                };

                var signalRCreateParameters = new SignalRResource()
                {
                    Location = resourceGroup.RegionName,
                    Tags     = tags,

                    Sku = new ResourceSku {
                        Name     = "Standard_S1",
                        Tier     = "Standard",
                        Capacity = 1,
                    },
                    HostNamePrefix = signalRName,
                    Features       = new List <SignalRFeature> {
                        serviceModeFeature
                    }
                };

                signalRCreateParameters.Validate();

                var signalR = await _signalRManagementClient
                              .SignalR
                              .CreateOrUpdateAsync(
                    resourceGroup.Name,
                    signalRName,
                    signalRCreateParameters,
                    cancellationToken
                    );

                Log.Information($"Created SignalR Service: {signalRName}");

                return(signalR);
            }
            catch (Exception ex) {
                Log.Error(ex, $"Failed ot create SignalR Service: {signalRName}");
                throw;
            }
        }