Ejemplo n.º 1
0
        private void BindSkins()
        {
            var allSkins = SkinProvider.GetSkins();

            //exclude mobile skins from the options
            var skins = allSkins.Where(s => !s.IsMobile);

            SkinNavigationList.DataSource = skins;
            SkinNavigationList.DataBind();

            SkinInfo.DataSource = skins;
            SkinInfo.DataBind();
        }
Ejemplo n.º 2
0
        IEnumerable <ListItem> BuildXmlPackageListItems()
        {
            // Get available skins
            var allSkinIds = SkinProvider
                             .GetSkins()
                             .Where(skin => !skin.IsMobile)
                             .Select(skin => skin.Id);

            // Load root and skin XmlPackages
            var availableXmlPackages = XmlPackageManager
                                       .GetXmlPackageInfosByPrefix(
                httpContext: new HttpContextWrapper(HttpContext.Current),
                searchLocations: (XmlPackageLocation)Locations,
                prefix: Prefix,
                skinIds: allSkinIds);

            // Group XmlPackages together and denote skin-specific ones
            var xmlPackageListItems = availableXmlPackages
                                      .GroupBy(info => info.Name)
                                      .Select(packages => new
            {
                name        = packages.Key,
                displayName =
                    packages.All(x => x.Location == XmlPackageLocation.Admin) ||                                                                        // Display all admin packages
                    packages.Any(x => x.Location == XmlPackageLocation.Root) ||                                                                         // Display all packages that are in root only or overridden in a skin
                    packages.Where(x => x.SkinId.HasValue).Select(x => x.SkinId.Value).SequenceEqual(allSkinIds)                                        // Display all packages that are in all skins
                                                        ? packages.First().DisplayName
                                                        : string.Format(                                                                                // Display skin-specific skins with a note on which skins
                        "{0} ({1} skin(s) only)",
                        packages.First().DisplayName,
                        string.Join(", ", packages
                                    .Where(x => x.SkinId.HasValue)
                                    .Select(x => string.Format("\"{0}\"", SkinProvider.GetSkinById(x.SkinId.Value).Name))))
            })
                                      .Select(listing => new ListItem(listing.displayName, listing.name));

            return(xmlPackageListItems);
        }