/// <summary>
        /// Creates the registered resource in cloud.
        /// </summary>
        /// <param name="resourceGroupName">Name of the resource group.</param>
        /// <param name="storageSyncServiceName">Name of the storage sync service.</param>
        /// <param name="serverRegistrationData">The server registration data.</param>
        /// <returns>RegisteredServer.</returns>
        private RegisteredServer CreateRegisteredResourceInCloud(string resourceGroupName, string storageSyncServiceName, ServerRegistrationData serverRegistrationData)
        {
            var createParameters = new RegisteredServerCreateParameters()
            {
                ServerId          = serverRegistrationData.ServerId.ToString(),
                ClusterId         = serverRegistrationData.ClusterId.ToString(),
                ClusterName       = serverRegistrationData.ClusterName,
                AgentVersion      = serverRegistrationData.AgentVersion,
                ServerCertificate = Convert.ToBase64String(serverRegistrationData.ServerCertificate),
                ServerOSVersion   = serverRegistrationData.ServerOSVersion,
                ServerRole        = serverRegistrationData.ServerRole.ToString(),
                FriendlyName      = SystemUtility.GetMachineName(),
                LastHeartBeat     = DateTime.Now.ToString(),
            };

            return(StorageSyncClientWrapper.StorageSyncManagementClient.RegisteredServers.Create(
                       resourceGroupName,
                       storageSyncServiceName,
                       serverRegistrationData.ServerId.ToString(),
                       createParameters));
        }
 /// <summary>
 /// Add a new registered server.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group. The name is case insensitive.
 /// </param>
 /// <param name='storageSyncServiceName'>
 /// Name of Storage Sync Service resource.
 /// </param>
 /// <param name='serverId'>
 /// GUID identifying the on-premises server.
 /// </param>
 /// <param name='parameters'>
 /// Body of Registered Server object.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <RegisteredServer> BeginCreateAsync(this IRegisteredServersOperations operations, string resourceGroupName, string storageSyncServiceName, string serverId, RegisteredServerCreateParameters parameters, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.BeginCreateWithHttpMessagesAsync(resourceGroupName, storageSyncServiceName, serverId, parameters, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <summary>
 /// Add a new registered server.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group. The name is case insensitive.
 /// </param>
 /// <param name='storageSyncServiceName'>
 /// Name of Storage Sync Service resource.
 /// </param>
 /// <param name='serverId'>
 /// GUID identifying the on-premises server.
 /// </param>
 /// <param name='parameters'>
 /// Body of Registered Server object.
 /// </param>
 public static RegisteredServer BeginCreate(this IRegisteredServersOperations operations, string resourceGroupName, string storageSyncServiceName, string serverId, RegisteredServerCreateParameters parameters)
 {
     return(operations.BeginCreateAsync(resourceGroupName, storageSyncServiceName, serverId, parameters).GetAwaiter().GetResult());
 }