Represents an Azure SQL Database Copy
상속: AzureSqlDatabaseReplicationModelBase
        /// <summary>
        /// Converts the response from the service to a powershell DatabaseCopy object
        /// </summary>
        /// <param name="copyResourceGroupName">The copy's resource group name</param>
        /// <param name="copyServerName">The copy's Azure SQL Server name</param>
        /// <param name="copyDatabaseName">The copy's database name</param>
        /// <param name="resourceGroupName">The source's resource group name</param>
        /// <param name="serverName">The source's Azure SQL Server name</param>
        /// <param name="databaseName">The source database name</param>
        /// <param name="elasticPoolName">The copy's target elastic pool</param>
        /// <param name="serviceLevelObjective">The copy's nondefault service level objective</param>
        /// <param name="response">The database create response</param>
        /// <returns>A powershell DatabaseCopy object</returns>
        private AzureSqlDatabaseCopyModel CreateDatabaseCopyModelFromDatabaseCreateOrUpdateResponse(string copyResourceGroupName, string copyServerName, string copyDatabaseName,
            string resourceGroupName, string serverName, string databaseName, Management.Sql.Models.DatabaseCreateOrUpdateResponse response)
        {
            // the response does not contain the majority of the information we wish to expose to the user, so most of the data is passed from the inputs.
            AzureSqlDatabaseCopyModel model = new AzureSqlDatabaseCopyModel();

            model.CopyResourceGroupName = copyResourceGroupName;
            model.CopyServerName = copyServerName;
            model.CopyDatabaseName = response.Database.Name;
            model.ResourceGroupName = resourceGroupName;
            model.ServerName = serverName;
            model.DatabaseName = databaseName;
            model.Location = GetServerLocation(resourceGroupName, serverName);
            model.CopyLocation = response.Database.Location;
            model.CreationDate = response.Database.Properties.CreationDate;

            return model;
        }
        /// <summary>
        /// Creates an Azure SQL Database Copy
        /// </summary>
        /// <param name="copyResourceGroup">The name of the resource group</param>
        /// <param name="copyServerName">The name of the Azure SQL Server</param>
        /// <param name="model">The input parameters for the create/update operation</param>
        /// <returns>The Azure SQL Database Copy object</returns>
        internal AzureSqlDatabaseCopyModel CopyDatabase(string copyResourceGroup, string copyServerName, AzureSqlDatabaseCopyModel model)
        {
            var resp = ReplicationCommunicator.CreateCopy(copyResourceGroup, copyServerName, model.CopyDatabaseName, Util.GenerateTracingId(), new DatabaseCreateOrUpdateParameters()
            {
                Location = model.CopyLocation,
                Properties = new DatabaseCreateOrUpdateProperties()
                {
                    SourceDatabaseId = string.Format(AzureReplicationLinkModel.SourceIdTemplate, _subscription.Id.ToString(),
                        model.ResourceGroupName, model.ServerName, model.DatabaseName),
                    CreateMode = Management.Sql.Models.DatabaseCreateMode.Copy,
                    ElasticPoolName = model.ElasticPoolName,
                    RequestedServiceObjectiveName = model.ServiceObjectiveName,
                }
            });

            return CreateDatabaseCopyModelFromDatabaseCreateOrUpdateResponse(model.CopyResourceGroupName, model.CopyServerName, model.CopyDatabaseName,
                model.ResourceGroupName, model.ServerName, model.DatabaseName, resp);
        }