コード例 #1
0
        /// <summary>
        /// Create a sync member
        /// </summary>
        /// <param name="model">AzureSqlSyncMemberModel object</param>
        /// <param name="databaseType">The type of member database</param>
        /// <param name="password">The password of member database</param>
        /// <returns>Created AzureSqlSyncGroupModel object</returns>
        internal AzureSqlSyncMemberModel CreateSyncMember(AzureSqlSyncMemberModel model, string syncAgentId)
        {
            Management.Sql.Models.SyncMember properties = new Management.Sql.Models.SyncMember()
            {
                SyncDirection = model.SyncDirection,
                DatabaseType  = model.MemberDatabaseType,
            };

            if (properties.DatabaseType == DatabaseTypeEnum.AzureSqlDatabase.ToString())
            {
                properties.DatabaseName                      = model.MemberDatabaseName;
                properties.ServerName                        = model.MemberServerName;
                properties.UserName                          = model.MemberDatabaseUserName;
                properties.Password                          = model.MemberDatabasePassword == null ? null : AzureSqlServerAdapter.Decrypt(model.MemberDatabasePassword);
                properties.UsePrivateLinkConnection          = model.UsePrivateLinkConnection;
                properties.SyncMemberAzureDatabaseResourceId = model.SyncMemberAzureDatabaseResourceId;
            }
            else
            {
                properties.SqlServerDatabaseId = model.SqlServerDatabaseId == null ? null : (Guid?)Guid.Parse(model.SqlServerDatabaseId);
                properties.SyncAgentId         = model.SyncAgentId;
            }
            var createResp = Communicator.CreateSyncMember(model.ResourceGroupName, model.ServerName, model.DatabaseName, model.SyncGroupName, model.SyncMemberName, syncAgentId, properties);

            // Workaround for Rest API return response value incorrect issue. Remove this line after backend fix is deployed
            var resp = Communicator.GetSyncMember(model.ResourceGroupName, model.ServerName, model.DatabaseName, new SyncMemberGeneralParameters()
            {
                SyncGroupName  = model.SyncGroupName,
                SyncMemberName = model.SyncMemberName,
            });

            return(CreateSyncMemberModelFromResponse(model.ResourceGroupName, model.ServerName, model.DatabaseName, model.SyncGroupName, resp));
        }
コード例 #2
0
        /// <summary>
        /// Update a sync member
        /// </summary>
        /// <param name="model">AzureSqlSyncMemberModel object</param>
        /// <param name="databaseType">The type of member database</param>
        /// <param name="password">The password of member database</param>
        /// <returns>Updated AzureSqlSyncGroupModel object</returns>
        internal AzureSqlSyncMemberModel UpdateSyncMember(AzureSqlSyncMemberModel model)
        {
            Management.Sql.Models.SyncMember properties = new Management.Sql.Models.SyncMember()
            {
                DatabaseType                      = model.MemberDatabaseType,
                DatabaseName                      = model.MemberDatabaseName,
                ServerName                        = model.MemberServerName,
                UserName                          = model.MemberDatabaseUserName,
                Password                          = model.MemberDatabasePassword == null ? null : AzureSqlServerAdapter.Decrypt(model.MemberDatabasePassword),
                UsePrivateLinkConnection          = model.UsePrivateLinkConnection,
                SyncMemberAzureDatabaseResourceId = model.SyncMemberAzureDatabaseResourceId
            };
            var updateResp = Communicator.UpdateSyncMember(model.ResourceGroupName, model.ServerName, model.DatabaseName, model.SyncGroupName, model.SyncMemberName, properties);

            // Workaround for Rest API return response value incorrect issue. Remove this line after backend fix is deployed
            var resp = Communicator.GetSyncMember(model.ResourceGroupName, model.ServerName, model.DatabaseName, new SyncMemberGeneralParameters()
            {
                SyncGroupName  = model.SyncGroupName,
                SyncMemberName = model.SyncMemberName,
            });

            return(CreateSyncMemberModelFromResponse(model.ResourceGroupName, model.ServerName, model.DatabaseName, model.SyncGroupName, resp));
        }
コード例 #3
0
 /// <summary>
 /// Converts the response from the service to a powershell sync member object
 /// </summary>
 /// <param name="resourceGroupName">The resource group the sync member is in</param>
 /// <param name="serverName">The name of the server</param>
 /// <param name="databaseName">The name of the database</param>
 /// <param name="syncMember">The sync member object from the response</param>
 /// <returns>The converted model</returns>
 public static AzureSqlSyncMemberModel CreateSyncMemberModelFromResponse(string resourceGroupName, string serverName, string databaseName, string syncGroupName, Management.Sql.Models.SyncMember syncMember)
 {
     return(new AzureSqlSyncMemberModel(resourceGroupName, serverName, databaseName, syncGroupName, syncMember));
 }
コード例 #4
0
 /// <summary>
 /// Update an existing sync member
 /// </summary>
 public Management.Sql.Models.SyncMember UpdateSyncMember(string resourceGroupName, string serverName, string databaseName, string syncGroupName, string syncMemberName, Management.Sql.Models.SyncMember parameters)
 {
     return(GetCurrentSqlClient().SyncMembers.Update(resourceGroupName, serverName, databaseName, syncGroupName, syncMemberName, parameters));
 }
コード例 #5
0
 /// <summary>
 /// Create a new sync member
 /// </summary>
 public Management.Sql.Models.SyncMember CreateSyncMember(string resourceGroupName, string serverName, string databaseName, string syncGroupName, string syncMemberName, string syncAgentId, Management.Sql.Models.SyncMember parameters)
 {
     Management.Sql.SqlManagementClient client = GetCurrentSqlClient();
     if (syncAgentId != null)
     {
         parameters.SyncAgentId = string.Format("/subscriptions/{0}/{1}", Subscription.Id, syncAgentId);
     }
     return(client.SyncMembers.CreateOrUpdate(resourceGroupName, serverName, databaseName, syncGroupName, syncMemberName, parameters));
 }