예제 #1
0
        public override async Task <IViewProviderResult> BuildDisplayAsync(Issue issue, IViewProviderContext context)
        {
            var viewModel = context.Controller.HttpContext.Items[typeof(EntityViewModel <Issue, Comment>)] as EntityViewModel <Issue, Comment>;

            if (viewModel == null)
            {
                throw new Exception($"A view model of type {typeof(EntityViewModel<Issue, Comment>).ToString()} has not been registered on the HttpContext!");
            }

            // Increment entity views
            await _viewIncrementer
            .Contextulize(context.Controller.HttpContext)
            .IncrementAsync(issue);

            return(Views(
                       View <Issue>("Home.Display.Header", model => issue).Zone("header"),
                       View <Issue>("Home.Display.Tools", model => issue).Zone("header-right"),
                       View <EntityViewModel <Issue, Comment> >("Home.Display.Content", model => viewModel).Zone("content"),
                       View <Issue>("Home.Display.Sidebar", model => issue).Zone("content-right"),
                       View <EditEntityReplyViewModel>("Home.Display.Footer", model => new EditEntityReplyViewModel()
            {
                EntityId = issue.Id,
                EditorHtmlName = EditorHtmlName
            }).Zone("resize-content"),
                       View <EntityViewModel <Issue, Comment> >("Home.Display.Actions", model => viewModel)
                       .Zone("resize-actions-right")
                       .Order(int.MaxValue)
                       ));
        }
예제 #2
0
        public override async Task <IViewProviderResult> BuildDisplayAsync(Topic topic, IViewProviderContext context)
        {
            var viewModel = context.Controller.HttpContext.Items[typeof(EntityViewModel <Topic, Reply>)] as EntityViewModel <Topic, Reply>;

            if (viewModel == null)
            {
                throw new Exception($"A view model of type {typeof(EntityViewModel<Topic, Reply>).ToString()} has not been registered on the HttpContext!");
            }

            // Increment entity views
            await _viewIncrementer
            .Contextulize(context.Controller.HttpContext)
            .IncrementAsync(topic);

            return(Views(
                       View <Topic>("Home.Display.Header", model => topic).Zone("header"),
                       View <Topic>("Home.Display.Tools", model => topic).Zone("tools"),
                       View <Topic>("Home.Display.Sidebar", model => topic).Zone("sidebar").Order(int.MinValue + 10),
                       View <EntityViewModel <Topic, Reply> >("Home.Display.Content", model => viewModel).Zone("content"),
                       View <EditEntityReplyViewModel>("Home.Display.Footer", model => new EditEntityReplyViewModel()
            {
                EntityId = topic.Id,
                EditorHtmlName = EditorHtmlName
            }).Zone("footer").Order(int.MinValue),
                       View <EntityViewModel <Topic, Reply> >("Home.Display.Actions", model => viewModel)
                       .Zone("actions")
                       .Order(int.MaxValue)
                       ));
        }