public ActionResult Category(DesignerKey designerKey, string categoryKey, int p = 1)
        {
            // Modèle.
            var pagedList = _patternService.ListPreviews(designerKey, categoryKey, p, PreviewsPageSize_);

            if (pagedList == null)
            {
                return(new HttpNotFoundResult());
            }

            var designer = GetDesigner_(designerKey, categoryKey);
            var category = (from _ in designer.Categories where _.Key == categoryKey select _).Single();

            var model = new CategoryViewModel {
                Category    = category,
                Designer    = designer,
                IsFirstPage = pagedList.IsFirstPage,
                IsLastPage  = pagedList.IsLastPage,
                PageCount   = pagedList.PageCount,
                PageIndex   = pagedList.PageIndex,
                Previews    = from _ in pagedList.Previews select PatternViewItem.Of(_, designer.DisplayName)
            };

            // Ontologie.
            Ontology.Title = String.Format(
                CultureInfo.CurrentUICulture,
                Strings.Designer_Category_TitleFormat,
                model.Category.DisplayName,
                model.Designer.DisplayName);
            Ontology.Description = String.Format(
                CultureInfo.CurrentUICulture,
                Strings.Designer_Category_DescriptionFormat,
                model.Designer.DisplayName,
                model.Category.DisplayName);
            //Ontology.SchemaOrg.ItemType = SchemaOrgType.CollectionPage;
            Ontology.Relationships.CanonicalUrl = SiteMap.DesignerCategory(designerKey, categoryKey, p);

            var image = model.Previews.First();

            SetOpenGraphImage_(designerKey, image.Reference, image.Variant);

            // LayoutViewModel.
            LayoutViewModel.AddAlternateUrls(Environment.Language, _ => _.DesignerCategory(designerKey, categoryKey, p));
            LayoutViewModel.DesignerMenuCssClass = ViewUtility.DesignerClass(designerKey);
            LayoutViewModel.MainHeading          = category.DisplayName;

            return(View(Constants.ViewName.Designer.Category, model));
        }
        public ActionResult Index(DesignerKey designerKey, int p = 1)
        {
            // Modèle.
            var pagedList = _patternService.ListPreviews(designerKey, p, PreviewsPageSize_);

            if (pagedList == null)
            {
                return(new HttpNotFoundResult());
            }

            var designer = GetDesigner_(designerKey, AllCategoryKey);

            var model = new DesignerViewModel {
                Designer    = designer,
                IsFirstPage = pagedList.IsFirstPage,
                IsLastPage  = pagedList.IsLastPage,
                PageCount   = pagedList.PageCount,
                PageIndex   = pagedList.PageIndex,
                Previews    = from _ in pagedList.Previews select PatternViewItem.Of(_, designer.DisplayName)
            };

            // Ontologie.
            Ontology.Title = String.Format(
                CultureInfo.CurrentUICulture, Strings.Designer_Index_TitleFormat, model.Designer.DisplayName);
            Ontology.Description = String.Format(
                CultureInfo.CurrentUICulture, Strings.Designer_Index_DescriptionFormat, model.Designer.DisplayName);
            Ontology.Relationships.CanonicalUrl = SiteMap.Designer(designerKey, p);

            var image = model.Previews.First();

            SetOpenGraphImage_(designerKey, image.Reference, image.Variant);

            // LayoutViewModel.
            LayoutViewModel.AddAlternateUrls(Environment.Language, _ => _.Designer(designerKey, p));
            LayoutViewModel.DesignerMenuCssClass = ViewUtility.DesignerClass(designerKey);

            return(View(Constants.ViewName.Designer.Index, model));
        }