Beispiel #1
0
        private void LoadAvailableWebsitePagesFromBaseData()
        {
            var baseWebsitePages     = WebsiteDataService.GetBaseDataWebsitePages(BDWebsitePageQueryExpression);
            var baseWebsitePageZones = WebsiteDataService.GetBaseDataWebsitePageZones(_ => true);

            foreach (var bWebsitePage in baseWebsitePages)
            {
                //	Find the baseWebsitePage's WebsitePage in AvailableWebsitePages; if cannot find, add it to the AvailableWebsitePages list.
                var aWebsitePageModel = ManageViewModel.AllAvailableWebsitePages.FirstOrDefault(wpm => wpm.WebsitePageName == bWebsitePage.Name);
                if (aWebsitePageModel == null)
                {
                    aWebsitePageModel = new WebsitePageModel(new WebsitePage(bWebsitePage), false);
                    ManageViewModel.AllAvailableWebsitePages.Add(aWebsitePageModel);
                }
                else
                {
                    aWebsitePageModel.WebsitePages.AddIfUnique(new WebsitePage(bWebsitePage), (a, b) => a.Audience == b.Audience);
                }

                //	Find the WebsitePage and BaseWebsitePageZones (using Name[from above] and Audience[below])
                var aWebsitePage = aWebsitePageModel.WebsitePages.First(wp => wp.Audience == bWebsitePage.Audience);
                var bZones       = baseWebsitePageZones.Where(bZone => bZone.WebsitePageName == aWebsitePage.Name && bZone.Audience == aWebsitePage.Audience);

                //	Add BaseZones to their respective WebsitePage in AllAvailableWebsitePages.
                foreach (var bZone in bZones)
                {
                    var aZone = aWebsitePage.Zones.FirstOrDefault(z => z.Name == bZone.Name);
                    if (aZone == null)
                    {
                        aZone = new WebsitePageZone(bZone);
                        aWebsitePage.Zones.Add(aZone);
                    }
                }
            }
        }