1 // Copyright 2004-2008 Castle Project - http://www.castleproject.org/
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
7 // http://www.apache.org/licenses/LICENSE-2.0
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
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
;
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
);
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");