Also on the blog todo list, private entries and draft entries.
Drafts are entries that have been saved but not released/posted yet. Private entries are posted but only visible to me.
Once drafts are done, then private entries could be drafts that never get posted but a) that's going to clutter up my list of drafts and b) I don't want to accidentally post a 'private' entry.
So. Two new bool fields on the Entry model, one for draft/live, one for public/private. Except now I'm thinking in terms of 'state' and 'visibility'and those should be enums so I can add new states later.
Drafts depend on Edit, I think. Private is a standalone change.
Thinking about Edit/History, Entries currently have a string Content property. Leave that in place, and create a new History type with valid DateTimeOffset valid from/to, and string Content to keep the old versions. Entries get a ICollection<History> History property, and BlogService gets a SaveEdit(Entry, newContent) method.
Will need to update _Entry to show last edit date where appropriate, so I'm starting to think about an EditVM. I'll also need to add an edit link (just when I'm logged in, obviously).
(Really, I should never use a DB model in a View, there should always be a VM intermediate, but it's kind of convienient to use the DB model at the start).
I think I also want to be able to edit tags, he said realising that I missed a 'todo' tag off the last entry, and maybe should change the tag to 'done' when the features are built.
Private is just adding a checkbox to the editor that will need to be a dropdown if we get more VisibilityTypes. I've got a vague "Friends only" visibility mode in mind, but not untill more than one person is using the site.
I'm consistently adding blank lines between paragraphs, so I need to improve the spacing here.