Esempio n. 1
0
        public async Task <IEnumerable <dynamic> > BuildSlidesAsync(SlidesProviderContext context)
        {
            var model = (Intelli.Presentations.Models.LinesSlidesProvider)context.SlidesProvider;

            //   await _displayManager.BuildDisplayAsync(model, _modelUpdaterAccessor.ModelUpdater, "Detail"),

            var lines = ParseLines(model.Lines);

            //var proxy = await Factory.CreateAsync<OrchardCore.Demo.Models.FakeShape>("Fake", f => f.Value = "666");
            List <dynamic> slidesList = new List <dynamic>();

            foreach (string line in lines)
            {
                var proxySlide = await context.DisplayContext.ShapeFactory.CreateAsync <SlideShapeVm>("SlidesProviders_LineSlide", vm =>
                {
                    //  vm.Text = line;
                    // vm.BuildPartDisplayContext = context.DisplayContext;
                    vm.SlideShape = line;
                });

                slidesList.Add(proxySlide);
            }

            return(slidesList);
        }
Esempio n. 2
0
        private async Task <IEnumerable <dynamic> > GetSlides(PresentationPart part, SlidesProvider slidesProvidermodel, BuildPartDisplayContext context)
        {
            ISlidesProvider slidesProvider = !string.IsNullOrWhiteSpace(part.ProviderName) ? _slidesProviderManager.GetProvider(part.ProviderName) : null;

            if (slidesProvider == null)
            {
                return(null);
            }
            SlidesProviderContext slidesProviderContext = new SlidesProviderContext(part, slidesProvidermodel, context);

            return(await slidesProvider.BuildSlidesAsync(slidesProviderContext));
        }
Esempio n. 3
0
        public async Task <IEnumerable <dynamic> > BuildSlidesAsync(SlidesProviderContext context)
        {
            var            model      = (Intelli.Presentations.Models.DefaultSlidesProvider)context.SlidesProvider;
            List <dynamic> slidesList = new List <dynamic>();

            // var hasItems = model.ContentItems.Any();
            //compoase contentitems from metadata
            if (model.ContentItems != null)
            {
                //inject _contentItemDisplayManager at method level to avoid circular dependency
                var contentItemDisplayManager = _serviceProvider.GetRequiredService <IContentItemDisplayManager>();
                var contentManager            = _serviceProvider.GetRequiredService <IContentManager>();

                foreach (ContentItem contentItem in model.ContentItems)
                {
                    var proxySlide = await context.DisplayContext.ShapeFactory.CreateAsync <SlideShapeVm>(
                        "SlidesProviders_DefaultItemSlide", async vm =>
                    {
                        Shape contentitemdisplayshape = (Shape)await contentItemDisplayManager.BuildDisplayAsync(contentItem, context.DisplayContext.Updater, "PresentationItem");

                        // Content_[DisplayType]__[ContentType] e.g. Content-BlogPost.Summary
                        string alternatetemplate = "Content_" + contentitemdisplayshape.Metadata.DisplayType + "__" + EncodeAlternateElement(contentItem.ContentType);

                        contentitemdisplayshape.Metadata.Alternates.Add(alternatetemplate);

                        vm.SlideShape = contentitemdisplayshape;
                        //  vm.SlideShape = await contentItemDisplayManager.BuildDisplayAsync(contentItem,context.DisplayContext.Updater, "Detail");
                        // vm.ContentItem = contentItem;
                        //vm.BuildPartDisplayContext = context.DisplayContext;
                    });

                    slidesList.Add(proxySlide);


                    // slidesList.Add(await contentItemDisplayManager.BuildDisplayAsync(contentItem, context.DisplayContext.Updater, "Detail"));
                    //for some reason injecting _contentItemDisplayManager causes circular dependency
                    //  slidesList.Add(await _contentItemDisplayManager.BuildDisplayAsync(contentItem, context.DisplayContext.Updater, "Detail"));
                }
            }

            return(slidesList);
        }
Esempio n. 4
0
        public async Task <IEnumerable <dynamic> > BuildSlidesAsync(SlidesProviderContext context)
        {
            var model = (Models.ListSlidesProvider)context.SlidesProvider;

            //  var containerContentItem = await _contentManager.GetAsync(model.ListContentItemId);

            //    if (containerContentItem != null)
            //   {
            //get child content items
            //var query = _session.Query<ContentItem, ContentItemIndex>(x => x.Published)
            //    .With<ContainedPartIndex>(x => x.ListContentItemId == model.ListContentItemId)
            //    .OrderBy(x => x.Order);
            var listcontentItem = await _contentManager.GetAsync(model.ListContentItemId);

            var listcontentItems = await _listContainerService.GetChildContentItems(listcontentItem.ContentItemId);// query.ListAsync();



            List <dynamic> slidesList = new List <dynamic>();
            //inject _contentItemDisplayManager at method level to avoid circular dependency
            var contentItemDisplayManager = _serviceProvider.GetRequiredService <IContentItemDisplayManager>();

            foreach (ContentItem contentItem in listcontentItems)
            {
                var proxySlide = await context.DisplayContext.ShapeFactory.CreateAsync <SlideShapeVm>(
                    "SlidesProviders_ListItemSlide", async vm =>
                {
                    vm.SlideShape = await contentItemDisplayManager.BuildDisplayAsync(contentItem, context.DisplayContext.Updater, "Detail");
//                        vm.ContentItem = contentItem;
//                        vm.BuildPartDisplayContext = context.DisplayContext;
                });

                slidesList.Add(proxySlide);
                //for some reason injecting _contentItemDisplayManager causes circular dependency
                //  slidesList.Add(await _contentItemDisplayManager.BuildDisplayAsync(contentItem, context.DisplayContext.Updater, "Detail"));
            }
            return(slidesList);
        }