public async Task <PostPreviewViewModel> GetPreviewAsync(string id) { var post = await _repository.FindAsync <Post, string>(SqlConstants.GetPreviewPost, id); if (post == null) { throw new BlogException(StatusCodes.Status404NotFound, "没有找到相应文章"); } var categories = await _repository.GetListAsync <CategoryViewModel>(SqlConstants.GetCategoriesByPost, new { ids = post.CategoryIds.ToArray() }); var postPreviewViewModel = new PostPreviewViewModel { Id = post.Id, Title = post.Title, Content = post.Content.AddLazyLoadToImgTag(), CreationTime = post.CreationTime, ContentAbstract = post.ContentAbstract, Categories = categories.ToList(), LastModifyTime = post.LastModifyTime }; return(postPreviewViewModel); }
public IActionResult Index(int?forumThreadId, int page = 1) { // Pokud není Id vlákna příspěvků specifikované, využiju první vlákno příspěvků ... var forumThread = forumThreadId.HasValue ? this.unitOfWork.ForumThreadRepository.GetById(forumThreadId.Value) : this.unitOfWork.ForumThreadRepository.FirstOrDefault(); if (forumThread != null) { var forumThreadInfoPanelViewModel = new ForumThreadInfoPanelViewModel(forumThread.Id, forumThread.Name, forumThread.Description); var forumThreadsViewModels = this.unitOfWork.ForumThreadRepository .GetAll() .ToList() .Select(ft => ForumThreadInfoViewModel.CreateFromEntity(ft)); var postsViewModels = this.unitOfWork.PostRepository .GetPostsByForumThreadId(forumThread.Id) .ToList() .Select(p => PostPreviewViewModel.CreateFromEntity(p)); var pagedPosts = PagingList.Create(postsViewModels, 5, page); var model = new HomeIndexViewModel(pagedPosts, forumThreadsViewModels, forumThreadInfoPanelViewModel); return(View(model)); } else { return(RedirectToAction(nameof(Index))); } }
public async Task <IActionResult> Preview(PostFormViewModel model) { if (model == null) { return(new HttpStatusCodeResult((int)HttpStatusCode.BadRequest)); } var vm = new PostPreviewViewModel() { Theme = this._settings.Theme, HeadPartialViewPath = this._themeService.GetHeadPartialViewPath(this._settings.Theme), HeaderPartialViewPath = this._themeService.GetHeaderPartialViewPath(this._settings.Theme), PostPartialViewPath = this._themeService.GetPostPartialViewPath(this._settings.Theme), FooterPartialViewPath = this._themeService.GetFooterPartialViewPath(this._settings.Theme), }; var page = new PageSettings(); page.Title = "Hello World"; page.Description = "This is description"; page.Author = new Author() { Name = "joebloggs" }; page.Date = DateTime.Today; page.BaseUrl = this._settings.BaseUrl; page.Url = "/posts/post.html"; page.Pages = new List <PageSettings>(); vm.Page = page; var env = this.Resolver.GetService(typeof(IApplicationEnvironment)) as IApplicationEnvironment; var loader = new ThemeLoader(this._settings, new FileHelper(this._settings)); var site = await loader.LoadAsync(env).ConfigureAwait(false); vm.Site = site; var parsedHtml = this._markdownHelper.Parse(model.Body); vm.Html = parsedHtml; return(this.View(vm)); }