private async Task <List <Guid> > GetDesignedGuidsAsync()
        {
            using (PageDefinitionDataProvider pageDP = new PageDefinitionDataProvider()) {
                using (ILockObject lockObject = await pageDP.LockDesignedPagesAsync()) {
                    List <Guid> pages = (from p in await pageDP.GetDesignedPagesWithoutLockAsync() select p.Value.PageGuid).ToList();
                    await lockObject.UnlockAsync();

                    return(pages);
                }
            }
        }
Example #2
0
        private async Task <SerializableList <Guid> > UpdatePageGuidsAsync(Guid unifiedSetGuid, List <string> pageList)
        {
            pageList = pageList != null ? pageList : new List <string>();
            SerializableList <Guid> pageGuids = new SerializableList <Guid>();

            using (PageDefinitionDataProvider pageDP = new PageDefinitionDataProvider()) {
                // Get all pages that are currently part of the unified page set
                List <DataProviderFilterInfo> filters = null;
                filters = DataProviderFilterInfo.Join(filters, new DataProviderFilterInfo {
                    Field = nameof(PageDefinition.UnifiedSetGuid), Operator = "==", Value = unifiedSetGuid
                });
                DataProviderGetRecords <PageDefinition> pageDefs = await pageDP.GetItemsAsync(0, 0, null, filters);

                // translate page list to guid list (preserving order)
                foreach (string page in pageList)
                {
                    PageDefinition pageDef = await pageDP.LoadPageDefinitionAsync(page);

                    if (pageDef != null)
                    {
                        pageGuids.Add(pageDef.PageGuid);
                        // check if it's already in the list
                        PageDefinition pageFound = (from p in pageDefs.Data where p.Url == page select p).FirstOrDefault();
                        if (pageFound == null)
                        {
                            // page not in list, add it
                            pageDef.UnifiedSetGuid = unifiedSetGuid;
                            await pageDP.SavePageDefinitionAsync(pageDef);
                        }
                        else if (pageFound.UnifiedSetGuid != unifiedSetGuid)
                        {
                            // page in list but with the wrong unifiedSetGuid
                            pageDef.UnifiedSetGuid = unifiedSetGuid;
                            await pageDP.SavePageDefinitionAsync(pageDef);

                            pageDefs.Data.Remove(pageFound);
                        }
                        else
                        {
                            // page already in list
                            pageDefs.Data.Remove(pageFound);
                        }
                    }
                }
                // remove all remaining pages from unified page set, they're no longer in the list
                foreach (PageDefinition pageDef in pageDefs.Data)
                {
                    pageDef.UnifiedSetGuid = null;
                    await pageDP.SavePageDefinitionAsync(pageDef);
                }
            }
            return(pageGuids);
        }
Example #3
0
        private async Task <List <string> > GetPageListFromGuidsAsync(SerializableList <Guid> pageGuids)
        {
            List <string> pages = new List <string>();

            using (PageDefinitionDataProvider pageDP = new PageDefinitionDataProvider()) {
                foreach (Guid pageGuid in pageGuids)
                {
                    PageDefinition page = await pageDP.LoadPageDefinitionAsync(pageGuid);

                    if (page != null)
                    {
                        pages.Add(page.Url);
                    }
                }
            }
            return(pages);
        }
Example #4
0
        private async Task RemoveGuidAsync(Guid unifiedSetGuid)
        {
            using (PageDefinitionDataProvider pageDP = new PageDefinitionDataProvider()) {
                // Get all pages that are part of the unified page set
                List <DataProviderFilterInfo> filters = null;
                filters = DataProviderFilterInfo.Join(filters, new DataProviderFilterInfo {
                    Field = nameof(PageDefinition.UnifiedSetGuid), Operator = "==", Value = unifiedSetGuid
                });
                DataProviderGetRecords <PageDefinition> pageDefs = await pageDP.GetItemsAsync(0, 0, null, filters);

                // remove all pages from unified page set if they're not within the page list
                foreach (PageDefinition pageDef in pageDefs.Data)
                {
                    pageDef.UnifiedSetGuid = null;
                    await pageDP.SavePageDefinitionAsync(pageDef);
                }
            }
        }
 private async Task <PageDefinition> LoadPageDefinitionAsync(Guid key)
 {
     using (PageDefinitionDataProvider pageDP = new PageDefinitionDataProvider()) {
         return(await pageDP.LoadPageDefinitionAsync(key));
     }
 }
 private async Task <PageDefinition> CreatePageDefinitionAsync(string url)
 {
     using (PageDefinitionDataProvider pageDP = new PageDefinitionDataProvider()) {
         return(await pageDP.CreatePageDefinitionAsync(url));
     }
 }
 private async Task SavePageDefinitionAsync(PageDefinition page)
 {
     using (PageDefinitionDataProvider pageDP = new PageDefinitionDataProvider()) {
         await pageDP.SavePageDefinitionAsync(page);
     }
 }
 private async Task <bool> RemovePageDefinitionAsync(Guid pageGuid)
 {
     using (PageDefinitionDataProvider pageDP = new PageDefinitionDataProvider()) {
         return(await pageDP.RemovePageDefinitionAsync(pageGuid));
     }
 }
 private async Task <List <PageDefinition> > GetPagesFromModuleAsync(Guid moduleGuid)
 {
     using (PageDefinitionDataProvider pageDP = new PageDefinitionDataProvider()) {
         return(await pageDP.GetPagesFromModuleAsync(moduleGuid));
     }
 }