diff --git a/BlogTemplate/Models/BlogDataStore.cs b/BlogTemplate/Models/BlogDataStore.cs
index 1eb12b8..6699de2 100644
--- a/BlogTemplate/Models/BlogDataStore.cs
+++ b/BlogTemplate/Models/BlogDataStore.cs
@@ -212,6 +212,7 @@ public void AppendPostInfo(Post post, XElement rootNode)
rootNode.Add(new XElement("LastModified", post.LastModified.ToString("o")));
rootNode.Add(new XElement("IsPublic", post.IsPublic.ToString()));
rootNode.Add(new XElement("Excerpt", post.Excerpt));
+ rootNode.Add(new XElement("EnableComments", post.EnableComments));
}
public void SavePost(Post post)
@@ -260,6 +261,7 @@ public Post CollectPostInfo(string expectedFilePath)
LastModified = DateTimeOffset.Parse(doc.Root.Element("LastModified").Value),
IsPublic = Convert.ToBoolean(doc.Root.Element("IsPublic").Value),
Excerpt = doc.Root.Element("Excerpt").Value,
+ EnableComments = Convert.ToBoolean(doc.Root.Element("EnableComments")?.Value),
};
post.Comments = GetAllComments(doc);
return post;
diff --git a/BlogTemplate/Models/Post.cs b/BlogTemplate/Models/Post.cs
index 77452a7..e5927c7 100644
--- a/BlogTemplate/Models/Post.cs
+++ b/BlogTemplate/Models/Post.cs
@@ -23,5 +23,6 @@ public class Post
public bool IsPublic { get; set; }
public string Excerpt { get; set; }
public int ExcerptMaxLength { get; } = 140;
+ public bool EnableComments { get; set; }
}
}
diff --git a/BlogTemplate/Pages/Edit.cshtml b/BlogTemplate/Pages/Edit.cshtml
index fd4f823..23bb09d 100644
--- a/BlogTemplate/Pages/Edit.cshtml
+++ b/BlogTemplate/Pages/Edit.cshtml
@@ -33,6 +33,14 @@
+
diff --git a/BlogTemplate/Pages/Edit.cshtml.cs b/BlogTemplate/Pages/Edit.cshtml.cs
index 9502c9c..d74ad32 100644
--- a/BlogTemplate/Pages/Edit.cshtml.cs
+++ b/BlogTemplate/Pages/Edit.cshtml.cs
@@ -35,6 +35,7 @@ public void OnGet([FromRoute] int id)
Title = post.Title,
Body = post.Body,
Excerpt = post.Excerpt,
+ EnableComments=post.EnableComments
};
if (post == null)
@@ -77,7 +78,7 @@ private void UpdatePost(Post post, [FromForm] bool updateSlug, bool wasPublic)
post.Title = EditedPost.Title;
post.Body = EditedPost.Body;
post.Excerpt = EditedPost.Excerpt;
-
+ post.EnableComments = EditedPost.EnableComments;
_dataStore.UpdatePost(post, wasPublic);
if (updateSlug)
{
@@ -92,6 +93,8 @@ public class EditedPostModel
[Required]
public string Body { get; set; }
public string Excerpt { get; set; }
+ [Display(Name = "Enable Comments")]
+ public bool EnableComments { get; set; }
}
}
}
diff --git a/BlogTemplate/Pages/New.cshtml b/BlogTemplate/Pages/New.cshtml
index 0c55bcc..189cdf5 100644
--- a/BlogTemplate/Pages/New.cshtml
+++ b/BlogTemplate/Pages/New.cshtml
@@ -34,6 +34,14 @@
+
diff --git a/BlogTemplate/Pages/New.cshtml.cs b/BlogTemplate/Pages/New.cshtml.cs
index c5aa921..06967d4 100644
--- a/BlogTemplate/Pages/New.cshtml.cs
+++ b/BlogTemplate/Pages/New.cshtml.cs
@@ -65,6 +65,7 @@ private void SavePost(NewPostViewModel newPost, bool publishPost)
Excerpt = NewPost.Excerpt,
Slug = _slugGenerator.CreateSlug(NewPost.Title),
LastModified = DateTimeOffset.Now,
+ EnableComments=NewPost.EnableComments
};
if (string.IsNullOrEmpty(post.Excerpt))
@@ -89,6 +90,8 @@ public class NewPostViewModel
[Required]
public string Body { get; set; }
public string Excerpt { get; set; }
+ [Display(Name ="Enable Comments")]
+ public bool EnableComments { get; set; }
}
}
}
diff --git a/BlogTemplate/Pages/Post.cshtml b/BlogTemplate/Pages/Post.cshtml
index 9234809..de64e2b 100644
--- a/BlogTemplate/Pages/Post.cshtml
+++ b/BlogTemplate/Pages/Post.cshtml
@@ -21,17 +21,19 @@
-
Comments
- @if (Model.Post.Comments.Count == 0)
+ @if (Model.Post.Comments.Any() || Model.Post.EnableComments)
{
-
No comments yet. Be the first to comment!
- }
- @foreach (var comment in Model.Post.Comments)
- {
- string cssClass = comment.IsPublic ? "" : "deletedContent";
-
+ }
}
}
else
{
-
Comments
- @if (Model.Post.Comments.Count == 0)
- {
-
No comments yet. Be the first to comment!
- }
- @foreach (var comment in Model.Post.Comments)
+ @if (Model.Post.Comments.Any() || Model.Post.EnableComments)
{
- @if (comment.IsPublic)
+
Comments
+ @if (Model.Post.Comments.Count == 0)
{
-
+
No comments yet. Be the first to comment!
+ }
+ @foreach (var comment in Model.Post.Comments)
+ {
+ @if (comment.IsPublic)
+ {
+
+ }
}
}
}
- @if (Model.Post.IsPublic)
+ @if (Model.Post.IsPublic && Model.Post.EnableComments)
{
}
+ @if (!Model.Post.EnableComments)
+ {
+
+
+
+
+ Comments are disabled for this post.
+
+
+
+ }