42 lines
1.2 KiB
C#
42 lines
1.2 KiB
C#
|
|
using Microsoft.AspNetCore.Mvc;
|
||
|
|
using SkyArtShop.Models;
|
||
|
|
using SkyArtShop.Services;
|
||
|
|
|
||
|
|
namespace SkyArtShop.Controllers
|
||
|
|
{
|
||
|
|
public class BlogController : Controller
|
||
|
|
{
|
||
|
|
private readonly MongoDBService _mongoService;
|
||
|
|
private readonly string _blogCollection = "BlogPosts";
|
||
|
|
|
||
|
|
public BlogController(MongoDBService mongoService)
|
||
|
|
{
|
||
|
|
_mongoService = mongoService;
|
||
|
|
}
|
||
|
|
|
||
|
|
public async Task<IActionResult> Index()
|
||
|
|
{
|
||
|
|
var posts = await _mongoService.GetAllAsync<BlogPost>(_blogCollection);
|
||
|
|
var publishedPosts = posts
|
||
|
|
.Where(p => p.IsPublished)
|
||
|
|
.OrderByDescending(p => p.PublishedDate)
|
||
|
|
.ToList();
|
||
|
|
|
||
|
|
return View(publishedPosts);
|
||
|
|
}
|
||
|
|
|
||
|
|
public async Task<IActionResult> Post(string slug)
|
||
|
|
{
|
||
|
|
var posts = await _mongoService.GetAllAsync<BlogPost>(_blogCollection);
|
||
|
|
var post = posts.FirstOrDefault(p => p.Slug == slug && p.IsPublished);
|
||
|
|
|
||
|
|
if (post == null)
|
||
|
|
{
|
||
|
|
return NotFound();
|
||
|
|
}
|
||
|
|
|
||
|
|
return View(post);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|