CSLA.NET 6.0.0
CSLA .NET is a software development framework that helps you build a reusable, maintainable object-oriented business layer for your app.
RootFactory.cs
Go to the documentation of this file.
1//-----------------------------------------------------------------------
2// <copyright file="RootFactory.cs" company="Marimer LLC">
3// Copyright (c) Marimer LLC. All rights reserved.
4// Website: https://cslanet.com
5// </copyright>
6// <summary>no summary</summary>
7//-----------------------------------------------------------------------
8using System;
9using System.Collections.Generic;
10using System.Linq;
11using System.Text;
12
14{
15 public class RootFactory : Csla.Server.ObjectFactory
16 {
17 public RootFactory(ApplicationContext applicationContext)
18 : base(applicationContext) { }
19
20 public object Create()
21 {
23 obj.Data = "Create";
24 obj.Location = obj.ExecutionLocation;
25 obj.MarkAsNew();
26 return obj;
27 }
28
29 public object Create(int test)
30 {
31 // add overload to test reflection
32 return null;
33 }
34
35 [RunLocal]
36 public object Create(string criteria)
37 {
39 obj.Data = "Create " + criteria;
40 obj.Location = obj.ExecutionLocation;
41 obj.MarkAsNew();
42 return obj;
43 }
44
45 public object Fetch()
46 {
48 obj.Data = "Fetch";
49 obj.MarkAsOld();
50 return obj;
51 }
52
53 public object Fetch(string criteria)
54 {
56 obj.Data = criteria;
57 obj.MarkAsOld();
58 return obj;
59 }
60
61 public object Update(Root obj)
62 {
63 obj.TransactionalType = _transactionalType;
64 obj.Data = "Update";
65 obj.MarkAsOld();
66 return obj;
67 }
68
69 [Transactional(TransactionalTypes.TransactionScope)]
70 public object Update2(Root obj)
71 {
72 obj.TransactionalType = _transactionalType;
73 obj.Data = "Update";
74 obj.MarkAsOld();
75 return obj;
76 }
77
78 [Transactional(TransactionalTypes.TransactionScope)]
79 public object Update3(Root obj)
80 {
81 obj.TransactionalType = _transactionalType;
82 obj.Data = "Update";
83 obj.MarkAsOld();
84 return obj;
85 }
86
87 public void Delete(string criteria)
88 {
89 TestResults.Add("ObjectFactory", "Delete");
90 }
91
92 private TransactionalTypes _transactionalType;
93
95 {
96 _transactionalType = args.DataPortalContext.TransactionalType;
97 }
98 }
99
100 public class RootFactoryC : Csla.Server.ObjectFactory
101 {
102 public RootFactoryC(ApplicationContext applicationContext)
103 : base(applicationContext) { }
104
105 public object Create(int test)
106 {
107 // add overload to test reflection
108 return null;
109 }
110
111 [RunLocal]
112 public object Create(string criteria)
113 {
115 obj.Data = "Create " + criteria;
116 obj.Location = obj.ExecutionLocation;
117 obj.MarkAsNew();
118 return obj;
119 }
120
121 private TransactionalTypes _transactionalType;
122
124 {
125 _transactionalType = args.DataPortalContext.TransactionalType;
126 }
127 }
128
129 public class RootFactory1 : Csla.Server.ObjectFactory
130 {
131 public RootFactory1(ApplicationContext applicationContext)
132 : base(applicationContext) { }
133
134 public object Fetch()
135 {
137 LoadProperty(obj, Root.DataProperty, "Fetch");
138 this.MarkOld(obj);
139 return obj;
140 }
141
142 [Transactional(TransactionalTypes.TransactionScope)]
143 public object Update(Root obj)
144 {
145
146 obj.IsolationLevel = System.Transactions.Transaction.Current.IsolationLevel.ToString();
148 obj.TransactionalType = _transactionalType;
149 obj.Data = "Update";
150 obj.MarkAsOld();
151 return obj;
152 }
153
154 private TransactionalTypes _transactionalType;
155
157 {
158 _transactionalType = args.DataPortalContext.TransactionalType;
159 }
160 }
161
162 //public class RootFactory2
163 //{
164 // [Transactional(TransactionalTypes.EnterpriseServices)]
165 // public object Update(Root obj)
166 // {
167 // obj.TransactionalType = _transactionalType;
168 // obj.Data = "Update";
169 // obj.MarkAsOld();
170 // return obj;
171 // }
172 //
173 // private TransactionalTypes _transactionalType;
174 //
175 // public void Invoke(Csla.DataPortalEventArgs args)
176 // {
177 // _transactionalType = args.DataPortalContext.TransactionalType;
178 // }
179 //}
180
181 public class RootFactory3 : Csla.Server.ObjectFactory
182 {
183 public RootFactory3(ApplicationContext applicationContext)
184 : base(applicationContext) { }
185
186 public object Fetch()
187 {
189 LoadProperty(obj, Root.DataProperty, "Fetch");
190 this.MarkOld(obj);
191 return obj;
192 }
193 }
194
195 public class RootFactory4 : Csla.Server.ObjectFactory
196 {
197 public RootFactory4(ApplicationContext applicationContext)
198 : base(applicationContext) { }
199
200 [RunLocal]
201 public object Create()
202 {
204 obj.Location = obj.ExecutionLocation;
205 obj.MarkAsNew();
206 return obj;
207 }
208
209 [Transactional(TransactionalTypes.TransactionScope, TransactionIsolationLevel.ReadCommitted, 100)]
210 public object Update(Root obj)
211 {
212
213 obj.IsolationLevel = System.Transactions.Transaction.Current.IsolationLevel.ToString();
214 obj.TransactionTimeout = 100;
215 obj.TransactionalType = _transactionalType;
216 obj.Data = "Update";
217 obj.MarkAsOld();
218 return obj;
219 }
220
221 private TransactionalTypes _transactionalType;
222
224 {
225 _transactionalType = args.DataPortalContext.TransactionalType;
226 }
227 }
228
229 public class RootFactory5 : Csla.Server.ObjectFactory
230 {
231 public RootFactory5(ApplicationContext applicationContext)
232 : base(applicationContext) { }
233
234 [RunLocal]
235 public object Create()
236 {
238 obj.Location = obj.ExecutionLocation;
239 obj.MarkAsNew();
240 return obj;
241 }
242
243 [Transactional(TransactionalTypes.TransactionScope)]
244 public object Update(Root obj)
245 {
246
247 obj.IsolationLevel = System.Transactions.Transaction.Current.IsolationLevel.ToString();
249 obj.TransactionalType = _transactionalType;
250 obj.Data = "Update";
251 obj.MarkAsOld();
252 return obj;
253 }
254
255 private TransactionalTypes _transactionalType;
256
258 {
259 _transactionalType = args.DataPortalContext.TransactionalType;
260 }
261 }
262
263 //public class RootFactory6
264 //{
265 // [Transactional(TransactionalTypes.TransactionScope, TransactionIsolationLevel.ReadCommitted)]
266 // public object Update(Root obj)
267 // {
268 //
269 // obj.IsolationLevel = System.EnterpriseServices.ContextUtil.SystemTransaction.IsolationLevel.ToString();
270 // obj.TransactionalType = _transactionalType;
271 // obj.Data = "Update";
272 // obj.MarkAsOld();
273 // return obj;
274 // }
275 //
276 // private TransactionalTypes _transactionalType;
277 //
278 // public void Invoke(Csla.DataPortalEventArgs args)
279 // {
280 // _transactionalType = args.DataPortalContext.TransactionalType;
281 // }
282 //}
283 //
284 //public class RootFactory7
285 //{
286 // [Transactional(TransactionalTypes.EnterpriseServices)]
287 // public object Update(Root obj)
288 // {
289 // obj.IsolationLevel = System.EnterpriseServices.ContextUtil.SystemTransaction.IsolationLevel.ToString();
290 //
291 // obj.TransactionalType = _transactionalType;
292 // obj.Data = "Update";
293 // obj.MarkAsOld();
294 // return obj;
295 // }
296 //
297 // private TransactionalTypes _transactionalType;
298 //
299 // public void Invoke(Csla.DataPortalEventArgs args)
300 // {
301 // _transactionalType = args.DataPortalContext.TransactionalType;
302 // }
303 //}
304
305}
Provides consistent context information between the client and server DataPortal objects.
ExecutionLocations ExecutionLocation
Returns a value indicating whether the application code is currently executing on the client or serve...
object CreateInstanceDI(Type objectType, params object[] parameters)
Creates an object using 'Activator.CreateInstance' using service provider (if one is available) to po...
static int DefaultTransactionTimeoutInSeconds
Gets or sets the default transaction timeout in seconds.
Provides information about the DataPortal call.
void MarkOld(object obj)
Calls the MarkOld method on the specified object, if possible.
void LoadProperty(object obj, IPropertyInfo propertyInfo, object newValue)
Loads a property's managed field with the supplied value.
RootFactory1(ApplicationContext applicationContext)
Definition: RootFactory.cs:131
void Invoke(Csla.DataPortalEventArgs args)
Definition: RootFactory.cs:156
RootFactory3(ApplicationContext applicationContext)
Definition: RootFactory.cs:183
RootFactory4(ApplicationContext applicationContext)
Definition: RootFactory.cs:197
void Invoke(Csla.DataPortalEventArgs args)
Definition: RootFactory.cs:223
void Invoke(Csla.DataPortalEventArgs args)
Definition: RootFactory.cs:257
RootFactory5(ApplicationContext applicationContext)
Definition: RootFactory.cs:231
void Invoke(Csla.DataPortalEventArgs args)
Definition: RootFactory.cs:123
RootFactoryC(ApplicationContext applicationContext)
Definition: RootFactory.cs:102
object Create(string criteria)
Definition: RootFactory.cs:112
object Create(string criteria)
Definition: RootFactory.cs:36
void Delete(string criteria)
Definition: RootFactory.cs:87
RootFactory(ApplicationContext applicationContext)
Definition: RootFactory.cs:17
object Fetch(string criteria)
Definition: RootFactory.cs:53
void Invoke(Csla.DataPortalEventArgs args)
Definition: RootFactory.cs:94
Csla.ApplicationContext.ExecutionLocations Location
Static dictionary-like class that offers similar functionality to GlobalContext This is used in tests...
Definition: TestResults.cs:21
static void Add(string key, string value)
Add an item to the test results, to indicate an outcome of a particular operation
Definition: TestResults.cs:29
TransactionalTypes
Provides a list of possible transactional technologies to be used by the server-side DataPortal.
TransactionIsolationLevel
Specifies an isolation level for transactions controlled by TransactionalAttribute