Fixing an issue with output parameters that are of type IntPtr
[castle.git] / Samples / MonoRail / MoviesDemo / Controllers / MoviesController.cs
blobde721326459efe4b24c5060db46bebd26f831151
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 MoviesDemo.Controllers
17 using System;
18 using Castle.MonoRail.Framework;
19 using MoviesDemo.Model;
21 [Resource("text", "MoviesDemo.Resources.Movies")]
22 public class MoviesController : AbstractHtmlPageController
24 public void List()
26 PropertyBag["movies"] = Movie.FindAll();
29 public void Edit(int movieId)
31 Movie movie = Movie.Find(movieId);
33 PropertyBag["movie"] = movie;
36 public void View(int movieId)
38 PropertyBag["movie"] = Movie.Find(movieId);
41 /// <summary>
42 /// This is a rather simplistic implementation of a save action.
43 /// It's only OK as the Movie class does not have any relation.
44 /// For a more reliable method, check ARDataBindAttribute on
45 /// the documentation
46 /// </summary>
47 public void Save([DataBind("movie")] Movie movie)
49 if (movie.Id == 0)
51 movie.Create();
53 else
55 movie.Save();
58 //Redirect so a refresh doesn't post again
59 Response.Redirect("~/Movies/View.castle?movieId=" + movie.Id);
61 CancelView();