Fixing an issue with output parameters that are of type IntPtr
[castle.git] / Samples / MonoRail / BinderSample / BinderSample.Web / Controllers / Approach2Controller.cs
blob4de04c7af4db7eb5242ada8bee5dc97ca0f7e7f5
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 BinderSample.Web.Controllers
17 using Castle.MonoRail.Framework;
19 using BinderSample.Web.Model;
22 [Layout("scaffold")]
23 public class Approach2Controller : SmartDispatcherController
25 public void Index()
27 PropertyBag.Add("publishers", Publisher.FindAll());
30 public void EditPublisher(int publisherId)
32 PropertyBag.Add("publisher", Publisher.Find(publisherId));
35 [AccessibleThrough(Verb.Post)]
36 public void Update([DataBind("publisher")] Publisher formpublisher,
37 [DataBind("book")] Book[] formBooks)
39 Publisher publisher = Publisher.Find(formpublisher.Id);
40 publisher.Name = formpublisher.Name;
42 foreach(Book formBook in formBooks)
44 Book book = Book.Find(formBook.Id);
46 book.Name = formBook.Name;
47 book.Author = formBook.Author;
49 book.Save();
52 publisher.Save();
54 Flash["message"] = "Changes saved";
56 RedirectToAction("EditPublisher", "publisherId=" + publisher.Id);