public async Task <ContentItem> NewAsync(string contentType) { var contentTypeDefinition = _contentDefinitionManager.GetTypeDefinition(contentType); if (contentTypeDefinition == null) { contentTypeDefinition = new ContentTypeDefinitionBuilder().Named(contentType).Build(); } // create a new kernel for the model instance var context = new ActivatingContentContext { ContentType = contentTypeDefinition.Name, Definition = contentTypeDefinition, Builder = new ContentItemBuilder(contentTypeDefinition) }; // invoke handlers to weld aspects onto kernel await Handlers.InvokeAsync((handler, context) => handler.ActivatingAsync(context), context, _logger); var context2 = new ActivatedContentContext(context.Builder.Build()); context2.ContentItem.ContentItemId = _idGenerator.GenerateUniqueId(context2.ContentItem); await ReversedHandlers.InvokeAsync((handler, context2) => handler.ActivatedAsync(context2), context2, _logger); var context3 = new InitializingContentContext(context2.ContentItem); await Handlers.InvokeAsync((handler, context3) => handler.InitializingAsync(context3), context3, _logger); await ReversedHandlers.InvokeAsync((handler, context3) => handler.InitializedAsync(context3), context3, _logger); // composite result is returned return(context3.ContentItem); }
public ContentItem New(string contentType) { var contentTypeDefinition = _contentDefinitionManager.GetTypeDefinition(contentType); if (contentTypeDefinition == null) { contentTypeDefinition = new ContentTypeDefinitionBuilder().Named(contentType).Build(); } // create a new kernel for the model instance var context = new ActivatingContentContext { ContentType = contentTypeDefinition.Name, Definition = contentTypeDefinition, Builder = new ContentItemBuilder(contentTypeDefinition) }; // invoke handlers to weld aspects onto kernel Handlers.Invoke(handler => handler.Activating(context), _logger); var context2 = new ActivatedContentContext { ContentType = contentType, ContentItem = context.Builder.Build() }; context2.ContentItem.ContentItemId = _idGenerator.GenerateUniqueId(context2.ContentItem); Handlers.Reverse().Invoke(handler => handler.Activated(context2), _logger); var context3 = new InitializingContentContext { ContentType = context2.ContentType, ContentItem = context2.ContentItem, }; Handlers.Invoke(handler => handler.Initializing(context3), _logger); Handlers.Reverse().Invoke(handler => handler.Initialized(context3), _logger); // composite result is returned return(context3.ContentItem); }