Fixing an issue with output parameters that are of type IntPtr
[castle.git] / MonoRail / TestSiteARSupport / Controllers / PersonUserController.cs
blobb0fc35cc7b032e358d5561ebe0f4c9c8f72256d2
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 TestSiteARSupport.Controllers
17 using Castle.Components.Binder;
18 using Castle.MonoRail.ActiveRecordSupport;
19 using Castle.MonoRail.Framework;
21 using TestSiteARSupport.Model;
23 [Layout("default")]
24 public class PersonUserController : ARSmartDispatcherController
26 public void New()
28 PropertyBag["user"] = new PersonUser();
31 [AccessibleThrough(Verb.Post)]
32 public void Insert([ARDataBind("user", AutoLoad = AutoLoadBehavior.OnlyNested)] PersonUser user)
34 ErrorList errorList = (ErrorList)BoundInstanceErrors[user];
36 PropertyBag.Add("errorlist", errorList);
38 if (errorList.Count == 0)
40 user.Create();
42 PropertyBag.Add("user", user);
46 public void Edit([ARFetch("id", false, true)] PersonUser user)
48 PropertyBag.Add("user", user);
51 [AccessibleThrough(Verb.Post)]
52 public void Update([ARDataBind("user", AutoLoad = AutoLoadBehavior.Always)] PersonUser user)
54 ErrorList errorList = (ErrorList)BoundInstanceErrors[user];
56 PropertyBag.Add("errorlist", errorList);
58 if (errorList.Count == 0)
60 user.Update();
62 PropertyBag.Add("user", user);
66 public void RemoveConfirm([ARFetch("id", false, true)] PersonUser user)
68 PropertyBag.Add("user", user);
71 [AccessibleThrough(Verb.Post)]
72 public void Delete([ARDataBind("user", AutoLoad = AutoLoadBehavior.Always)] PersonUser user)
74 user.Delete();