/// <summary> /// Creates a new sql database. /// </summary> /// <param name="databaseName">The name for the new database</param> /// <param name="databaseMaxSizeInGB">The maximum size of the new database</param> /// <param name="databaseCollation">The collation for the new database</param> /// <param name="databaseEdition">The edition for the new database</param> /// <returns>The newly created Sql Database</returns> public Database CreateNewDatabase( string databaseName, int?databaseMaxSizeInGB, string databaseCollation, DatabaseEdition databaseEdition, ServiceObjective serviceObjective) { this.clientRequestId = SqlDatabaseCmdletBase.GenerateClientTracingId(); // Get the SQL management client SqlManagementClient sqlManagementClient = this.subscription.CreateClient <SqlManagementClient>(); this.AddTracingHeaders(sqlManagementClient); // Create the database DatabaseCreateResponse response = sqlManagementClient.Databases.Create( this.serverName, new DatabaseCreateParameters() { Name = databaseName, Edition = databaseEdition != DatabaseEdition.None ? databaseEdition.ToString() : DatabaseEdition.Web.ToString(), CollationName = databaseCollation ?? string.Empty, MaximumDatabaseSizeInGB = databaseMaxSizeInGB ?? (databaseEdition == DatabaseEdition.Business || databaseEdition == DatabaseEdition.Premium ? 10 : 1), ServiceObjectiveId = serviceObjective != null ? serviceObjective.Id.ToString() : null, }); // Construct the resulting Database object Database database = CreateDatabaseFromResponse(response); return(database); }
/// <summary> /// Given a <see cref="DatabaseCreateResponse"/> this will create and return a <see cref="Database"/> /// object with the fields filled in. /// </summary> /// <param name="response">The response to turn into a <see cref="Database"/></param> /// <returns>a <see cref="Database"/> object.</returns> private Database CreateDatabaseFromResponse(DatabaseCreateResponse response) { return(this.CreateDatabaseFromResponse( response.Id, response.Name, response.CreationDate, response.Edition, response.CollationName, response.MaximumDatabaseSizeInGB, response.IsFederationRoot, response.IsSystemObject, response.SizeMB, response.ServiceObjectiveAssignmentErrorCode, response.ServiceObjectiveAssignmentErrorDescription, response.ServiceObjectiveAssignmentState, response.ServiceObjectiveAssignmentStateDescription, response.ServiceObjectiveAssignmentSuccessDate, response.ServiceObjectiveId)); }