public WikiArticleInfoViewModel(
            RequestContext requestContext,
            ArticleId articleId,
            UserManager <WikiDownUser> userManager)
            : base(requestContext, articleId, activeTab: HeaderTab.Info)
        {
            if (userManager == null)
            {
                throw new ArgumentNullException("userManager");
            }

            if (this.Article == null)
            {
                throw new ArticleNotFoundException("articleId");
            }

            this.userManager = userManager;

            this.ActiveArticleRevisionId = this.Article.ActiveRevisionId;

            var redirects = CurrentRepository.GetArticleRedirectsList(articleId);

            this.Redirects = redirects.Select(x => new KeyValuePair <string, string>(x.Slug, x.Title)).ToList();

            this.Tags = (this.Article.Tags ?? Enumerable.Empty <string>()).ToList();

            var articleRevisions = CurrentRepository.GetArticleRevisionsList(articleId);

            this.Revisions = articleRevisions.Select(x => new ArticleRevisionListItem(x, this.userManager)).ToList();
        }