public async Task SaveAsync(ApplicationSchemaDefinition application, CancellationToken cancellationToken = default(CancellationToken)) { //TODO: from somewhere, purge revoked/deleted metadata. var persistableApplicationMetadata = new PersistableApplicationMetadata(application); var connection = Database.GetConnection(cancellationToken); // Replaces all application metadata. await connection.DeleteAsync(persistableApplicationMetadata); await connection.InsertAsync(persistableApplicationMetadata); }
private async Task <ApplicationSchemaDefinition> DoLoadApplicationAsync(PersistableApplicationMetadata application, CancellationToken cancellationToken) { var parent = JsonParser.ApplicationSchemaDefinition(application.Data); foreach (var composition in parent.Compositions) { // Retrieves the metadata of the // composition's source application. var child = await LoadApplicationAsync(composition.Relationship(), cancellationToken); composition.To(child); child.Title = composition.Label; } return(parent); }