public virtual 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()
            };

            // back-reference for convenience (e.g. getting metadata when in a view)
            context2.ContentItem.ContentManager = this;

            Handlers.Invoke(handler => handler.Activated(context2), Logger);

            var context3 = new InitializingContentContext {
                ContentType = context2.ContentType,
                ContentItem = context2.ContentItem,
            };

            Handlers.Invoke(handler => handler.Initializing(context3), Logger);
            Handlers.Invoke(handler => handler.Initialized(context3), Logger);

            // composite result is returned
            return(context3.ContentItem);
        }
Beispiel #2
0
        public override void Activated(ActivatedContentContext context)
        {
            var contentTypeDefinition = _contentDefinitionManager.GetTypeDefinition(context.ContentType);

            if (contentTypeDefinition == null)
            {
                return;
            }

            foreach (var typePartDefinition in contentTypeDefinition.Parts)
            {
                var partName = typePartDefinition.PartDefinition.Name;
                var partType = _contentPartFactory.GetContentPartType(partName) ?? typeof(ContentPart);
                var part     = context.ContentItem.Get(partType, partName) as ContentPart;

                if (part != null)
                {
                    _partHandlers.Invoke(handler => handler.Activated(context, part), Logger);
                    context.ContentItem.Weld(partName, part);
                }
            }
        }
Beispiel #3
0
        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,
                ContentItem = new ContentItem()
                {
                    ContentType = contentTypeDefinition.Name
                }
            };

            // invoke handlers to weld aspects onto kernel
            await Handlers.InvokeAsync((handler, context) => handler.ActivatingAsync(context), context, _logger);

            var context2 = new ActivatedContentContext(context.ContentItem);

            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 virtual void Activated(ActivatedContentContext context, TPart instance)
 {
 }
Beispiel #5
0
 private void PropertyHandlers(ActivatedContentContext context, MessageTemplatePart part)
 {
     part.LayoutField.Loader(x => part.Record.LayoutId != null ? _messageTemplateService.GetTemplate(part.Record.LayoutId.Value) : null);
     part.LayoutField.Setter(x => { part.Record.LayoutId = x != null ? x.Id : default(int?); return(x); });
 }
 private void SetupLazyFields(ActivatedContentContext context, RobotsSettingsPart part)
 {
     part.mDefaultRobotsContent.Loader(() => CreateDefaultRobotsContent());
 }
 protected virtual void Activated(ActivatedContentContext context, TPart instance)
 {
 }
 public virtual void Activated(ActivatedContentContext context) {}
 private void PropertyHandlers(ActivatedContentContext context, NonceTemplateSettingsPart part)
 {
     part.SelectedTemplateField.Loader(() => part.Record.TemplateIdSelected != null ? _templateService.GetTemplate(part.Record.TemplateIdSelected.Value) : null);
     part.SelectedTemplateField.Setter(x => { part.Record.TemplateIdSelected = x != null ? x.Id : default(int?); return(x); });
 }
 private void SetupLazyFields(ActivatedContentContext context, CookiePolicyPart part)
 {
     part.CurrentContentItemField.Loader(() => _currentContentAccessor.CurrentContentItem);
 }
Beispiel #11
0
 public void Activated(ActivatedContentContext context)
 {
 }
 private void SetupLazyFields(ActivatedContentContext context, EditContentWidgetPart part)
 {
     part.CurrentContentItemField.Loader(() => _currentContentAccessor.CurrentContentItem);
 }
 private void SetupLazyFields(ActivatedContentContext context, SessionPart part)
 {
     part._speakersField.Loader(() => _conferenceService.GetSpeakersBySession(part.Id));
 }
Beispiel #14
0
 private void LazyLoadHandlers(ActivatedContentContext context, NotificationsPart part)
 {
     part._contentItem.Loader(() => part.NotificationsPlanPartRecord == null ? null : _contentManager.Get <NotificationsPlanPart>(part.NotificationsPlanPartRecord.Id));
 }
Beispiel #15
0
 private void SetupFields(ActivatedContentContext context, CloudVideoPart part)
 {
     part._assetManager = _assetManager;
     part._jobManager   = _jobManager;
 }
 public static PageContext PageContext(this ActivatedContentContext context)
 {
     return(new PageContext(context.ContentItem, context.ContentItem.PageGroup()));
 }