public async Task <IActionResult> Raw(int year, int month, int day, string slug, string raw) { var slugInfo = new PostSlugInfo(year, month, day, slug); if (!_blogConfig.SecuritySettings.EnablePostRawEndpoint) { return(NotFound()); } if (year > DateTime.UtcNow.Year || string.IsNullOrWhiteSpace(slug)) { Logger.LogWarning($"Invalid parameter year: {year}, slug: {slug}"); return(NotFound()); } switch (raw.ToLower()) { case "meta": var meta = await _postService.GetSegmentAsync(slugInfo); return(Json(meta)); case "content": var content = await _postService.GetRawContentAsync(slugInfo); return(Content(content, "text/plain")); } return(BadRequest()); }
public async Task <IActionResult> Raw(int year, int month, int day, string slug, string type) { var slugInfo = new PostSlugInfo(year, month, day, slug); if (!_blogConfig.SecuritySettings.EnablePostRawEndpoint || year > DateTime.UtcNow.Year || string.IsNullOrWhiteSpace(slug)) { return(NotFound()); } switch (type.ToLower()) { case "meta": var meta = await _postService.GetMeta(slugInfo); return(Json(meta)); case "content": var content = await _postService.GetContent(slugInfo); return(Content(content, "text/plain")); } return(BadRequest()); }
public async Task <IActionResult> Slug(int year, int month, int day, string slug) { if (year > DateTime.UtcNow.Year || string.IsNullOrWhiteSpace(slug)) { return(NotFound()); } var slugInfo = new PostSlugInfo(year, month, day, slug); var post = await _postService.GetAsync(slugInfo); if (post is null) { return(NotFound()); } ViewBag.TitlePrefix = $"{post.Title}"; return(View(post)); }
public async Task <IActionResult> Slug(int year, int month, int day, string slug) { ViewBag.ErrorMessage = string.Empty; if (year > DateTime.UtcNow.Year || string.IsNullOrWhiteSpace(slug)) { Logger.LogWarning($"Invalid parameter year: {year}, slug: {slug}"); return(NotFound()); } var slugInfo = new PostSlugInfo(year, month, day, slug); var post = await _postService.GetAsync(slugInfo); if (post == null) { Logger.LogWarning($"Post not found, parameter '{year}/{month}/{day}/{slug}'."); return(NotFound()); } var viewModel = new PostSlugViewModelWrapper(post); ViewBag.TitlePrefix = $"{post.Title}"; return(View(viewModel)); }