public Object GetArticleBySeoTitle(dynamic parameters)
        {
            // Optimisation SEO (anti duplicate Content).
            // Redirige vers l'url sans "/" de fin
            if(Request.Url.Path.EndsWith("/")) {
                return Response.AsRedirect(Request.Url.Path.TrimEnd('/'), RedirectResponse.RedirectType.Permanent);
            }

            // Get seo title
            var seoTitle = parameters.seoTitle;

            // Request our repository for those articles
            Article article = _ArticleRepository
                // Get article from the giving seoTitle
                .GetArticle(seoTitle);

            var _articleExtended = new ArticleExtended();
            _articleExtended.Content = article.Content;
            _articleExtended.Description = article.Description;
            _articleExtended.HomeSlider = article.HomeSlider;
            _articleExtended.Id = article.Id;
            _articleExtended.ImageUrl = article.ImageUrl;
            _articleExtended.PublicationDate = article.PublicationDate;
            _articleExtended.PublicationState = article.PublicationState;
            _articleExtended.SeoDescription = article.SeoDescription;
            _articleExtended.SeoKeywords = article.SeoKeywords;
            _articleExtended.SeoTitle = article.SeoTitle;
            _articleExtended.Tags = article.Tags;
            _articleExtended.Title = article.Title;

            if (Request.Url.Path.Contains ("apercu") && _articleExtended.PublicationState == PublicationState.Draft) {
                _articleExtended.ShowDraft = true;
            } else {
                _articleExtended.ShowDraft = false;
            }

            var model = new ArticleModel (UseConcatenatedResources){
                Article = _articleExtended,
                HtmlTitle = article.Title,
                MetaDescription = article.SeoDescription.Replace ("\"", "'"),
                MetaKeywords = article.SeoKeywords.Count > 0 ? string.Join(", ", article.SeoKeywords) : ""
            };

            return this.View["Public/Pages/article.cshtml", model];
        }
        protected Object ListPublicArticles(dynamic parameters)
        {
            // Optimisation SEO (anti duplicate Content).
            // Redirige vers l'url sans "/" de fin
            if(Request.Url.Path.EndsWith("/")) {
                return Response.AsRedirect(Request.Url.Path.TrimEnd('/'), RedirectResponse.RedirectType.Permanent);
            }

            // Try to bind that request parameters (querystring and/or form post) to a PaginationRequestParameters class
            var listEventsParameters = this.Bind<PaginationRequestParameters> ();

            // Default values for pageIndex and pageSize
            var pageIndex = 0;
            var pageSize = 10;

            // If we got some parameters
            if (listEventsParameters != null) {
                // Get the pageIndex from them
                pageIndex = listEventsParameters.PageIndex;

                // Get the pageSize from them
                pageSize = listEventsParameters.PageSize;
            }

            // Request our repository for those articles
            var articles = this.Application
                // Just the specified page from the last published articles
                .ListPublishedArticles(pageIndex, pageSize, this.CurrentUser.Role, null);

            var _resultArticles = new List<ArticleExtended>();
            foreach(var _article in articles.Items)
            {
                var articleExtended = new ArticleExtended();
                articleExtended.CreationDate = _article.CreationDate;
                articleExtended.Content = _article.Content;
                articleExtended.Description = _article.Description;
                articleExtended.FriendlyUrl = _article.FriendlyUrl;
                articleExtended.HomeSlider = _article.HomeSlider;
                articleExtended.Id = _article.Id;
                articleExtended.ImageUrl = _article.ImageUrl;
                articleExtended.ModificationDate = _article.ModificationDate;
                articleExtended.PublicationDate = _article.PublicationDate;
                articleExtended.PublicationState = _article.PublicationState;
                articleExtended.SeoDescription = _article.SeoDescription;
                articleExtended.SeoKeywords = _article.SeoKeywords;
                articleExtended.SeoTitle = _article.SeoTitle;
                articleExtended.Tags = _article.Tags;
                articleExtended.Title = _article.Title;

                _resultArticles.Add(articleExtended);
            }
            var _resultPaginatedArticles = new PaginatedList<ArticleExtended>(articles.PageIndex, articles.PageSize, articles.Total, _resultArticles);

            var model = new ArticlesModel (UseConcatenatedResources){
                Articles = _resultPaginatedArticles
            };

            model.NavMenu.NavSectionsMenuLeft[0].IsActive = "active";

            return this.View["Public/Pages/articles.cshtml", model];
        }