Reverted accidental checkin
[castle.git] / Samples / MindDump / Castle.Applications.MindDump / Presentation / Controllers / BlogController.cs
blob1574a3710bfa5adee70f904c874854ce61dc9ee7
1 // Copyright 2004-2008 Castle Project - http://www.castleproject.org/
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
15 namespace Castle.Applications.MindDump.Presentation.Controllers
17 using System;
18 using System.Collections;
20 using Castle.MonoRail.Framework;
22 using Castle.Applications.MindDump.Model;
23 using Castle.Applications.MindDump.Services;
24 using Castle.Applications.MindDump.Presentation.Filters;
27 [ControllerDetails("blogs")]
28 [Filter(ExecuteEnum.AfterAction, typeof(PrintableFilter))]
29 public class BlogController : SmartDispatcherController
31 private BlogService _blogService;
33 public BlogController(BlogService blogService)
35 _blogService = blogService;
38 public void View()
40 Blog blog = _blogService.ObtainBlogByAuthorName( Name );
42 LayoutName = blog.Theme;
44 IList posts = _blogService.ObtainPosts( blog );
46 PropertyBag.Add( "blog", blog );
47 PropertyBag.Add( "posts", posts );
49 if (posts.Count != 0)
51 PropertyBag.Add( "lastpost", posts[ posts.Count - 1 ] );
54 RenderView("blogs", "view");
57 public void View(long entryid)
59 Blog blog = _blogService.ObtainBlogByAuthorName( Name );
61 LayoutName = blog.Theme;
63 IList posts = _blogService.ObtainPosts( blog );
65 PropertyBag.Add( "blog", blog );
66 PropertyBag.Add( "posts", posts );
67 PropertyBag.Add( "lastpost", _blogService.ObtainPost(blog, entryid) );
69 RenderView("blogs", "view");