Могу поспорить, что это кажется неправильным, потому что вам на самом деле не нужен этот уровень абстракции.
Прикладные услуги: фасады . Плохой фасад - это тот, который добавляет больше сложности, чем решает. Как то так:
public int Increment(int v){ v=v+1;return v;}
Если это не решает достаточно сложность или Вы явно хотите, чтобы все проходило через дополнительный слой, чтобы максимально разделить клиента - это бесполезно.
Лично я бы просто вставил эти вещи в контроллер (если используется шаблон MVC):
public ActionResult ViewBlogPost(int id){
//I like to name repositories as collections
var blog=_blogs.Find(id);
blog.IsBeingViewedBy(_currentViewer);
return View(blog);
}