public override void Execute() { var root = repository.Get(host.CurrentSite.RootItemID); var discriminators = repository.FindDescendantDiscriminators(root).ToDictionary(d => d.Discriminator, d => d.Count); foreach (var definition in definitions.GetDefinitions()) { int numberOfItems; discriminators.TryGetValue(definition.Discriminator, out numberOfItems); definition.NumberOfItems = numberOfItems; } }
private bool checkTenant(string id) { var item = (_contentItemRepository.Get("", id, "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", false, false, "", "", 0, 1, 0)) .FirstOrDefault(); if (item != null) { return(this.checkTenant(item)); } return(false); }
public override PathData ResolvePath(string path) { var root = repository.Get(host.CurrentSite.RootItemID); return(ResolvePath(root, path)); }
public BanicoQuery( ISectionRepository sectionRepository, ISectionItemRepository sectionItemRepository, IContentItemRepository contentItemRepository) { Field <ListGraphType <SectionType> >( "sections", arguments: new QueryArguments( new QueryArgument <StringGraphType> { Name = "id" }, new QueryArgument <StringGraphType> { Name = "module" }, new QueryArgument <StringGraphType> { Name = "name" } ), resolve: context => sectionRepository.Get( context.GetArgument <string>("id"), context.GetArgument <string>("module"), context.GetArgument <string>("name") )); Field <ListGraphType <SectionItemType> >( "sectionItems", arguments: new QueryArguments( new QueryArgument <StringGraphType> { Name = "id" }, new QueryArgument <StringGraphType> { Name = "section" }, new QueryArgument <StringGraphType> { Name = "pathUrl" }, new QueryArgument <StringGraphType> { Name = "alias" }, new QueryArgument <StringGraphType> { Name = "name" }, new QueryArgument <StringGraphType> { Name = "parentId" }, new QueryArgument <BooleanGraphType> { Name = "isRoot" } ), resolve: context => sectionItemRepository.Get( context.GetArgument <string>("id"), context.GetArgument <string>("section"), context.GetArgument <string>("pathUrl"), context.GetArgument <string>("alias"), context.GetArgument <string>("name"), context.GetArgument <string>("parentId"), context.GetArgument <bool>("isRoot") ) ); Field <ListGraphType <ContentItemType> >( "contentItems", arguments: new QueryArguments( new QueryArgument <StringGraphType> { Name = "id" }, new QueryArgument <StringGraphType> { Name = "name" }, new QueryArgument <StringGraphType> { Name = "alias" }, new QueryArgument <StringGraphType> { Name = "module" }, new QueryArgument <StringGraphType> { Name = "parentId" }, new QueryArgument <StringGraphType> { Name = "createdBy" }, new QueryArgument <StringGraphType> { Name = "sectionItems" }, new QueryArgument <StringGraphType> { Name = "content" }, new QueryArgument <StringGraphType> { Name = "attribute01" }, new QueryArgument <StringGraphType> { Name = "attribute02" }, new QueryArgument <StringGraphType> { Name = "attribute03" }, new QueryArgument <StringGraphType> { Name = "attribute04" }, new QueryArgument <StringGraphType> { Name = "attribute05" }, new QueryArgument <StringGraphType> { Name = "attribute06" }, new QueryArgument <StringGraphType> { Name = "attribute07" }, new QueryArgument <StringGraphType> { Name = "attribute08" }, new QueryArgument <StringGraphType> { Name = "attribute09" }, new QueryArgument <StringGraphType> { Name = "attribute10" }, new QueryArgument <StringGraphType> { Name = "attribute11" }, new QueryArgument <StringGraphType> { Name = "attribute12" }, new QueryArgument <StringGraphType> { Name = "attribute13" }, new QueryArgument <StringGraphType> { Name = "attribute14" }, new QueryArgument <StringGraphType> { Name = "attribute15" }, new QueryArgument <StringGraphType> { Name = "attribute16" }, new QueryArgument <StringGraphType> { Name = "attribute17" }, new QueryArgument <StringGraphType> { Name = "attribute18" }, new QueryArgument <StringGraphType> { Name = "attribute19" }, new QueryArgument <StringGraphType> { Name = "attribute20" } ), resolve: context => contentItemRepository.Get( context.GetArgument <string>("id"), context.GetArgument <string>("name"), context.GetArgument <string>("alias"), context.GetArgument <string>("module"), context.GetArgument <string>("parentId"), context.GetArgument <string>("createdBy"), context.GetArgument <string>("sectionItems"), context.GetArgument <string>("content"), context.GetArgument <string>("attribute01"), context.GetArgument <string>("attribute02"), context.GetArgument <string>("attribute03"), context.GetArgument <string>("attribute04"), context.GetArgument <string>("attribute05"), context.GetArgument <string>("attribute06"), context.GetArgument <string>("attribute07"), context.GetArgument <string>("attribute08"), context.GetArgument <string>("attribute09"), context.GetArgument <string>("attribute10"), context.GetArgument <string>("attribute11"), context.GetArgument <string>("attribute12"), context.GetArgument <string>("attribute13"), context.GetArgument <string>("attribute14"), context.GetArgument <string>("attribute15"), context.GetArgument <string>("attribute16"), context.GetArgument <string>("attribute17"), context.GetArgument <string>("attribute18"), context.GetArgument <string>("attribute19"), context.GetArgument <string>("attribute20") ) ); }
public override ContentItem Get(object id) { return(repository.Get(id)); }
//private IConfiguration _configuration; public BanicoQuery( IAccessService accessService, ISectionRepository sectionRepository, ISectionItemRepository sectionItemRepository, IContentItemRepository contentItemRepository, IConfigRepository configRepository, IOEmbedService oEmbedService) { Name = "Query"; Field <ListGraphType <SectionType> >( "sections", arguments: new QueryArguments( new QueryArgument <StringGraphType> { Name = "id" }, new QueryArgument <StringGraphType> { Name = "module" }, new QueryArgument <StringGraphType> { Name = "name" } ), resolve: context => { string tenant = string.Empty; return(sectionRepository.Get( tenant, context.GetArgument <string>("id"), context.GetArgument <string>("module"), context.GetArgument <string>("name") )); }); Field <ListGraphType <SectionItemType> >( "sectionItems", arguments: new QueryArguments( new QueryArgument <StringGraphType> { Name = "id" }, new QueryArgument <StringGraphType> { Name = "section" }, new QueryArgument <StringGraphType> { Name = "pathUrl" }, new QueryArgument <StringGraphType> { Name = "alias" }, new QueryArgument <StringGraphType> { Name = "name" }, new QueryArgument <StringGraphType> { Name = "parentId" }, new QueryArgument <BooleanGraphType> { Name = "isRoot" } ), resolve: (context) => { string tenant = string.Empty; return(sectionItemRepository.Get( tenant, context.GetArgument <string>("id"), context.GetArgument <string>("section"), context.GetArgument <string>("pathUrl"), context.GetArgument <string>("alias"), context.GetArgument <string>("name"), context.GetArgument <string>("parentId"), context.GetArgument <bool>("isRoot") )); } ); Field <MaxPageSizeType>( "maxPageSize", resolve: context => contentItemRepository.GetMaxPageSize() ); Field <ContentItemsCountType>( "contentItemsCount", arguments: new QueryArguments( new QueryArgument <StringGraphType> { Name = "id" }, new QueryArgument <StringGraphType> { Name = "name" }, new QueryArgument <StringGraphType> { Name = "alias" }, new QueryArgument <StringGraphType> { Name = "module" }, new QueryArgument <StringGraphType> { Name = "type" }, new QueryArgument <StringGraphType> { Name = "parentId" }, new QueryArgument <StringGraphType> { Name = "createdBy" }, new QueryArgument <StringGraphType> { Name = "sectionItems" }, new QueryArgument <StringGraphType> { Name = "content" }, new QueryArgument <StringGraphType> { Name = "attribute01" }, new QueryArgument <StringGraphType> { Name = "attribute02" }, new QueryArgument <StringGraphType> { Name = "attribute03" }, new QueryArgument <StringGraphType> { Name = "attribute04" }, new QueryArgument <StringGraphType> { Name = "attribute05" }, new QueryArgument <StringGraphType> { Name = "attribute06" }, new QueryArgument <StringGraphType> { Name = "attribute07" }, new QueryArgument <StringGraphType> { Name = "attribute08" }, new QueryArgument <StringGraphType> { Name = "attribute09" }, new QueryArgument <StringGraphType> { Name = "attribute10" }, new QueryArgument <StringGraphType> { Name = "attribute11" }, new QueryArgument <StringGraphType> { Name = "attribute12" }, new QueryArgument <StringGraphType> { Name = "attribute13" }, new QueryArgument <StringGraphType> { Name = "attribute14" }, new QueryArgument <StringGraphType> { Name = "attribute15" }, new QueryArgument <StringGraphType> { Name = "attribute16" }, new QueryArgument <StringGraphType> { Name = "attribute17" }, new QueryArgument <StringGraphType> { Name = "attribute18" }, new QueryArgument <StringGraphType> { Name = "attribute19" }, new QueryArgument <StringGraphType> { Name = "attribute20" }, new QueryArgument <BooleanGraphType> { Name = "includeChildren" }, new QueryArgument <BooleanGraphType> { Name = "includeParents" }), resolve: context => { string tenant = accessService.DomainTenant(); return(contentItemRepository.GetCount( tenant, context.GetArgument <string>("id"), context.GetArgument <string>("name"), context.GetArgument <string>("alias"), context.GetArgument <string>("module"), context.GetArgument <string>("type"), context.GetArgument <string>("parentId"), context.GetArgument <string>("createdBy"), context.GetArgument <string>("sectionItems"), context.GetArgument <string>("content"), context.GetArgument <string>("attribute01"), context.GetArgument <string>("attribute02"), context.GetArgument <string>("attribute03"), context.GetArgument <string>("attribute04"), context.GetArgument <string>("attribute05"), context.GetArgument <string>("attribute06"), context.GetArgument <string>("attribute07"), context.GetArgument <string>("attribute08"), context.GetArgument <string>("attribute09"), context.GetArgument <string>("attribute10"), context.GetArgument <string>("attribute11"), context.GetArgument <string>("attribute12"), context.GetArgument <string>("attribute13"), context.GetArgument <string>("attribute14"), context.GetArgument <string>("attribute15"), context.GetArgument <string>("attribute16"), context.GetArgument <string>("attribute17"), context.GetArgument <string>("attribute18"), context.GetArgument <string>("attribute19"), context.GetArgument <string>("attribute20"), context.GetArgument <bool>("includeChildren"), context.GetArgument <bool>("includeParents") )); }); Field <ListGraphType <ContentItemType> >( "contentItems", arguments: new QueryArguments( new QueryArgument <StringGraphType> { Name = "id" }, new QueryArgument <StringGraphType> { Name = "name" }, new QueryArgument <StringGraphType> { Name = "alias" }, new QueryArgument <StringGraphType> { Name = "module" }, new QueryArgument <StringGraphType> { Name = "type" }, new QueryArgument <StringGraphType> { Name = "parentId" }, new QueryArgument <StringGraphType> { Name = "createdBy" }, new QueryArgument <StringGraphType> { Name = "sectionItems" }, new QueryArgument <StringGraphType> { Name = "content" }, new QueryArgument <StringGraphType> { Name = "attribute01" }, new QueryArgument <StringGraphType> { Name = "attribute02" }, new QueryArgument <StringGraphType> { Name = "attribute03" }, new QueryArgument <StringGraphType> { Name = "attribute04" }, new QueryArgument <StringGraphType> { Name = "attribute05" }, new QueryArgument <StringGraphType> { Name = "attribute06" }, new QueryArgument <StringGraphType> { Name = "attribute07" }, new QueryArgument <StringGraphType> { Name = "attribute08" }, new QueryArgument <StringGraphType> { Name = "attribute09" }, new QueryArgument <StringGraphType> { Name = "attribute10" }, new QueryArgument <StringGraphType> { Name = "attribute11" }, new QueryArgument <StringGraphType> { Name = "attribute12" }, new QueryArgument <StringGraphType> { Name = "attribute13" }, new QueryArgument <StringGraphType> { Name = "attribute14" }, new QueryArgument <StringGraphType> { Name = "attribute15" }, new QueryArgument <StringGraphType> { Name = "attribute16" }, new QueryArgument <StringGraphType> { Name = "attribute17" }, new QueryArgument <StringGraphType> { Name = "attribute18" }, new QueryArgument <StringGraphType> { Name = "attribute19" }, new QueryArgument <StringGraphType> { Name = "attribute20" }, new QueryArgument <BooleanGraphType> { Name = "includeChildren" }, new QueryArgument <BooleanGraphType> { Name = "includeParents" }, new QueryArgument <StringGraphType> { Name = "orderBy" }, new QueryArgument <StringGraphType> { Name = "thenBy" }, new QueryArgument <IntGraphType> { Name = "page" }, new QueryArgument <IntGraphType> { Name = "pageSize" }, new QueryArgument <IntGraphType> { Name = "offset" } ), resolve: context => { string tenant = accessService.DomainTenant(); return(contentItemRepository.Get( tenant, context.GetArgument <string>("id"), context.GetArgument <string>("name"), context.GetArgument <string>("alias"), context.GetArgument <string>("module"), context.GetArgument <string>("type"), context.GetArgument <string>("parentId"), context.GetArgument <string>("createdBy"), context.GetArgument <string>("sectionItems"), context.GetArgument <string>("content"), context.GetArgument <string>("attribute01"), context.GetArgument <string>("attribute02"), context.GetArgument <string>("attribute03"), context.GetArgument <string>("attribute04"), context.GetArgument <string>("attribute05"), context.GetArgument <string>("attribute06"), context.GetArgument <string>("attribute07"), context.GetArgument <string>("attribute08"), context.GetArgument <string>("attribute09"), context.GetArgument <string>("attribute10"), context.GetArgument <string>("attribute11"), context.GetArgument <string>("attribute12"), context.GetArgument <string>("attribute13"), context.GetArgument <string>("attribute14"), context.GetArgument <string>("attribute15"), context.GetArgument <string>("attribute16"), context.GetArgument <string>("attribute17"), context.GetArgument <string>("attribute18"), context.GetArgument <string>("attribute19"), context.GetArgument <string>("attribute20"), context.GetArgument <bool>("includeChildren"), context.GetArgument <bool>("includeParents"), context.GetArgument <string>("orderBy"), context.GetArgument <string>("thenBy"), context.GetArgument <int>("page"), context.GetArgument <int>("pageSize"), context.GetArgument <int>("offset") )); }); Field <ListGraphType <ConfigType> >( "configs", arguments: new QueryArguments( new QueryArgument <StringGraphType> { Name = "id" }, new QueryArgument <StringGraphType> { Name = "module" }, new QueryArgument <StringGraphType> { Name = "name" } ), resolve: context => configRepository.Get( context.GetArgument <string>("id"), context.GetArgument <string>("module"), context.GetArgument <string>("name") )); Field <OEmbedType>( "oEmbed", arguments: new QueryArguments( new QueryArgument <StringGraphType> { Name = "service" }, new QueryArgument <StringGraphType> { Name = "url" } ), resolve: context => { return(oEmbedService.GetOEmbed( context.GetArgument <string>("service"), context.GetArgument <string>("url") )); }); }
public void Replication_Works() { var count = CreateContent(); Assert.AreEqual(0, Storage.GetItems().Count()); // master export all Master.Syncronize(); Assert.AreEqual(count, Storage.GetItems().Count()); // slave import all, master unaffected Slave.Syncronize(); Assert.AreEqual(count, SlaveRepo.Count()); Assert.AreEqual(count, repository.Count()); Assert.IsTrue(SlaveFlushable.Flushed); // delete one item repository.Delete(item2); Assert.IsFalse((repository as XmlContentItemRepository).ExistsLocal(item2)); // ensure file is deleted on disk, too Assert.AreEqual(--count, repository.Count()); Master.Syncronize(); Assert.AreEqual(count, Storage.GetItems().Count()); Slave.Syncronize(); Assert.AreEqual(count, SlaveRepo.Count()); Assert.IsNull(SlaveRepo.Get(item2.ID)); Assert.IsFalse((repository as XmlContentItemRepository).ExistsLocal(item2)); // ensure file is deleted on disk, too // changing an item does nothing ... item1b.Title = "Hello World"; Assert.AreEqual(0, Master.Syncronize()); // TODO // now publish the item by bumping the date item1b.SavedBy = "test"; item1b.Published = Utility.CurrentTime(); persister.Save(item1b); // create a new item ContentItem item3 = CreateOneItem <TestItem>(13, "item3", root); item3.SavedBy = "nobody"; repository.SaveOrUpdate(item3); Assert.AreEqual(2, Master.Syncronize()); Slave.Syncronize(); Assert.AreEqual(++count, SlaveRepo.Count()); var i3 = SlaveRepo.Get(item3.ID); Assert.NotNull(i3); Assert.That(i3 == item3); // TODO verify this check // now update the root root.Title = "new root"; root.Published = Utility.CurrentTime(); persister.Save(root); Master.Syncronize(); Slave.Syncronize(); var sroot = SlaveRepo.Get(root.ID); Assert.AreEqual(root.Title, sroot.Title); Assert.AreEqual(root.Children.Count, sroot.Children.Count); // now update item below the root and move it down Assert.AreEqual(root, item1.Parent); item1.Title = "item1 moved down"; item1.SortOrder += 99; item1.Published = Utility.CurrentTime(); persister.Save(item1); Master.Syncronize(); Slave.Syncronize(); var sitem1 = SlaveRepo.Get(item1.ID); Assert.AreEqual(item1.Title, sitem1.Title); sroot = SlaveRepo.Get(root.ID); Assert.AreEqual(root.Children.Count, sroot.Children.Count); var sitem3 = SlaveRepo.Get(item3.ID); Assert.AreEqual(sitem3, sroot.Children[0]); Assert.AreEqual(sitem1, sroot.Children[1]); // Master never gets flushed Assert.IsFalse(MasterFlushable.Flushed); }