Fixing an issue with output parameters that are of type IntPtr
[castle.git] / Facilities / NHibernateIntegration / Castle.Facilities.NHibernateIntegration.Tests / Transactions / Model / OrderDao2.cs
blob11971907aa46db3e32e33b67e98be5c586949bff
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.Facilities.NHibernateIntegration.Tests.Transactions
17 using Castle.Services.Transaction;
18 using NHibernate;
20 [Transactional]
21 public class OrderDao2 : NHibernateGenericDao
23 private readonly ISessionManager sessManager;
25 public OrderDao2(ISessionManager sessManager) : base(sessManager, "db2")
27 this.sessManager = sessManager;
30 [Transaction(Distributed = true)]
31 public virtual Order Create(float val)
33 using(ISession session = sessManager.OpenSession("db2"))
35 NUnit.Framework.Assert.IsNotNull(session.Transaction);
37 Order order = new Order();
38 order.Value = val;
39 session.Save(order);
41 return order;
45 [Transaction(Distributed = true)]
46 public virtual void Update(Order order, float newval)
48 using(ISession session = sessManager.OpenSession("db2"))
50 NUnit.Framework.Assert.IsNotNull(session.Transaction);
52 order.Value = newval;
54 session.Update(order);
58 [Transaction(Distributed = true)]
59 public virtual void Delete(int orderId)
61 using(ISession session = sessManager.OpenSession("db2"))
63 NUnit.Framework.Assert.IsNotNull(session.Transaction);
65 Order order = (Order) session.Load(typeof(Order), orderId);
67 session.Delete(order);