From dda522d2218e22045502f6b9603b17412257c40a Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Sun, 28 Apr 2019 07:56:25 +0100 Subject: [PATCH] Add BlogPostViewModel for view specific processing --- Website/Controllers/BlogController.cs | 3 ++- Website/Controllers/HomeController.cs | 3 ++- Website/Models/BlogPost.cs | 19 +++++++------------ Website/ViewModels/BlogPostViewModel.cs | 21 +++++++++++++++++++++ Website/Views/Blog/View.cshtml | 3 +-- Website/Views/Home/Index.cshtml | 3 +-- 6 files changed, 34 insertions(+), 18 deletions(-) create mode 100644 Website/ViewModels/BlogPostViewModel.cs diff --git a/Website/Controllers/BlogController.cs b/Website/Controllers/BlogController.cs index 879628b..9cf7486 100644 --- a/Website/Controllers/BlogController.cs +++ b/Website/Controllers/BlogController.cs @@ -26,7 +26,8 @@ namespace Website.Controllers public async Task View(int id) { var post = await _repo.GetPostAsync(id); - return View(post); + var model = new BlogPostViewModel(post); + return View(model); } } } diff --git a/Website/Controllers/HomeController.cs b/Website/Controllers/HomeController.cs index 4e3a5a4..226d0fd 100644 --- a/Website/Controllers/HomeController.cs +++ b/Website/Controllers/HomeController.cs @@ -18,7 +18,8 @@ namespace Website.Controllers public async Task Index() { var post = await _blogRepo.GetLatestPostAsync(); - return View(post); + var model = new BlogPostViewModel(post); + return View(model); } } } diff --git a/Website/Models/BlogPost.cs b/Website/Models/BlogPost.cs index 775497e..b9977ed 100644 --- a/Website/Models/BlogPost.cs +++ b/Website/Models/BlogPost.cs @@ -16,17 +16,12 @@ namespace Website.Models UserId = state.User_Id; } - public BlogPost() - { - - } - - public int Id { get; set; } - public string Title { get; set; } - public string Content { get; set; } - public DateTime Timestamp { get; set; } - public string Draft { get; set; } - public string Url { get; set; } - public int UserId { get; set; } + public int Id { get; private set; } + public string Title { get; private set; } + public string Content { get; private set; } + public DateTime Timestamp { get; private set; } + public string Draft { get; private set; } + public string Url { get; private set; } + public int UserId { get; private set; } } } \ No newline at end of file diff --git a/Website/ViewModels/BlogPostViewModel.cs b/Website/ViewModels/BlogPostViewModel.cs new file mode 100644 index 0000000..91df4f3 --- /dev/null +++ b/Website/ViewModels/BlogPostViewModel.cs @@ -0,0 +1,21 @@ +using System; +using Website.Models; + +namespace Website.ViewModels +{ + public class BlogPostViewModel + { + public BlogPostViewModel(BlogPost blogPost) + { + Title = blogPost.Title; + Content = blogPost.Content; + Timestamp = blogPost.Timestamp; + Url = blogPost.Url; + } + + public string Title { get; private set; } + public string Content { get; private set; } + public DateTime Timestamp { get; private set; } + public string Url { get; private set; } + } +} \ No newline at end of file diff --git a/Website/Views/Blog/View.cshtml b/Website/Views/Blog/View.cshtml index f683f4c..9cc8478 100644 --- a/Website/Views/Blog/View.cshtml +++ b/Website/Views/Blog/View.cshtml @@ -1,5 +1,4 @@ -@using Website.Models; -@model BlogPost; +@model BlogPostViewModel; @{ ViewData["Title"] = "Blog"; diff --git a/Website/Views/Home/Index.cshtml b/Website/Views/Home/Index.cshtml index fe03240..5fca93b 100644 --- a/Website/Views/Home/Index.cshtml +++ b/Website/Views/Home/Index.cshtml @@ -1,5 +1,4 @@ -@using Website.Models; -@model BlogPost; +@model BlogPostViewModel; @{ ViewData["Title"] = "Home";