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); }
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)); }
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); }
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); }