Пример #1
0
        /// <summary>
        /// Returns the details for a media.
        /// </summary>
        public async Task <MediaVM> GetMediaAsync(string key)
        {
            var id    = PageHelper.GetMediaId(key);
            var media = await _db.Media
                        .Include(x => x.Tags)
                        .ThenInclude(x => x.Object)
                        .Where(x => x.IsDeleted == false)
                        .FirstOrDefaultAsync(x => x.Id == id);

            if (media == null)
            {
                throw new KeyNotFoundException();
            }

            var descr = await _markdown.CompileAsync(media.Description);

            return(new MediaVM
            {
                Type = media.Type,
                IsProcessed = media.IsProcessed,
                Title = media.Title,
                Description = descr,
                Date = FuzzyDate.TryParse(media.Date),
                Tags = GetMediaTagsVMs(media.Tags).ToList(),
                Event = GetPageTitle(media.Tags.FirstOrDefault(x => x.Type == MediaTagType.Event)),
                Location = GetPageTitle(media.Tags.FirstOrDefault(x => x.Type == MediaTagType.Location)),
                OriginalPath = media.FilePath,
                PreviewPath = GetSizedMediaPath(media.FilePath, MediaSize.Large)
            });
        }
Пример #2
0
        /// <summary>
        /// Returns the description for a constructed page.
        /// </summary>
        public async Task <PageDescriptionVM> GetPageDescriptionAsync(Page page)
        {
            var descr = await _markdown.CompileAsync(page.Description);

            return(Configure(page, new PageDescriptionVM {
                Description = descr
            }));
        }