示例#1
0
        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);
        }
示例#2
0
        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);
        }