3 // Copyright 2004-2008 Castle Project - http://www.castleproject.org/
5 // Licensed under the Apache License, Version 2.0 (the "License");
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
19 // This facility was a contribution kindly
20 // donated by Gilles Bayon <gilles.bayon@gmail.com>
26 namespace Castle
.Facilities
.IBatisNetIntegration
.Tests
29 using Castle
.Facilities
.IBatisNetIntegration
.Tests
.Dao
;
30 using Castle
.Facilities
.IBatisNetIntegration
.Tests
.Domain
;
31 using Castle
.Services
.Transaction
;
34 /// Description résumée de Service.
37 /// If no sql map key is defined by
38 /// [Session("sqlMap.key")]
39 /// on a method definition
40 /// The first regsitration will be used
43 [UsesAutomaticSessionCreation
]
44 public class Service
: IService
46 private IAccountDao _accountDao
;
48 public Service(IAccountDao accountDao
)
50 _accountDao
= accountDao
;
53 #region IService Members
55 public Account
GetAccount(int id
)
57 return _accountDao
.GetAccount(id
);
60 // Specify wich Data Mapper to use
61 [Session(AbstractIBatisNetTestCase
.DATA_MAPPER
)]
62 [Transaction(TransactionMode
.Requires
)]
63 public Account
GetAccountWithSpecificDataMapper(int id
)
65 return _accountDao
.GetAccount(id
);
68 public void InsertAccount(Account account
)
70 _accountDao
.InsertAccount(account
);
73 [Transaction(TransactionMode
.Requires
)]
74 public void InsertTransactionalAccount(Account account
)
76 _accountDao
.InsertAccount(account
);
79 public void ResetTableAccount()
81 _accountDao
.ResetTableAccount();
85 public void DummyNoSession()
87 Console
.WriteLine("No session will be open since we're using the NoSession attribute");
90 [Transaction(TransactionMode
.Requires
)]
91 public void InsertTransactionalAccountWithError(Account account
)
93 _accountDao
.InsertAccount(account
);
95 throw new ApplicationException("Ugh!");