コード例 #1
0
ファイル: TagController.cs プロジェクト: AgFlore/vocadb
        public async Task <ActionResult> DetailsById(int id = InvalidId, string slug = null)
        {
            if (id == InvalidId)
            {
                return(NoId());
            }

            // TODO: write test for null slug
            slug ??= string.Empty;

            var tagName = await _queries.LoadTagAsync(id, t => t.UrlSlug ?? string.Empty);

            if (slug != tagName)
            {
                return(RedirectToActionPermanent("DetailsById", new { id, slug = tagName }));
            }

            var contract = await _queries.GetDetailsAsync(id);

            var prop = PageProperties;

            var thumbUrl = Url.ImageThumb(contract.Thumb, ImageSize.Original);

            if (!string.IsNullOrEmpty(thumbUrl))
            {
                PageProperties.OpenGraph.Image = thumbUrl;
            }

            prop.Description = _markdownParser.GetPlainText(contract.Description.EnglishOrOriginal);

            return(RenderDetails(contract));
        }