- Timestamp:
- 03/31/09 01:33:37 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Hive.Server.ADODataAccess/JobAdapter.cs
r1449 r1468 28 28 using System.Linq.Expressions; 29 29 using HeuristicLab.DataAccess.ADOHelper; 30 using HeuristicLab.Hive.Server.ADODataAccess.dsHiveServerTableAdapters; 31 using System.Data.Common; 32 using System.Data.SqlClient; 30 33 31 34 namespace HeuristicLab.Hive.Server.ADODataAccess { 35 class JobAdapterWrapper : 36 DataAdapterWrapperBase<dsHiveServerTableAdapters.JobTableAdapter, 37 Job, 38 dsHiveServer.JobRow> { 39 public override void UpdateRow(dsHiveServer.JobRow row) { 40 TransactionalAdapter.Update(row); 41 } 42 43 public override dsHiveServer.JobRow 44 InsertNewRow(Job job) { 45 dsHiveServer.JobDataTable data = 46 new dsHiveServer.JobDataTable(); 47 48 dsHiveServer.JobRow row = data.NewJobRow(); 49 row.JobId = job.Id; 50 data.AddJobRow(row); 51 52 return row; 53 } 54 55 public override IEnumerable<dsHiveServer.JobRow> 56 FindById(Guid id) { 57 return TransactionalAdapter.GetDataById(id); 58 } 59 60 public override IEnumerable<dsHiveServer.JobRow> 61 FindAll() { 62 return TransactionalAdapter.GetData(); 63 } 64 65 protected override void SetConnection(DbConnection connection) { 66 adapter.Connection = connection as SqlConnection; 67 } 68 69 protected override void SetTransaction(DbTransaction transaction) { 70 adapter.Transaction = transaction as SqlTransaction; 71 } 72 } 73 32 74 class JobAdapter : 33 CachedDataAdapter<dsHiveServerTableAdapters.JobTableAdapter,75 DataAdapterBase<dsHiveServerTableAdapters.JobTableAdapter, 34 76 Job, 35 dsHiveServer.JobRow, 36 dsHiveServer.JobDataTable>, 77 dsHiveServer.JobRow>, 37 78 IJobAdapter { 38 public JobAdapter() :39 base(ServiceLocator.GetDBSynchronizer()) {40 }41 42 79 #region Fields 43 80 private IClientAdapter clientAdapter = null; … … 46 83 get { 47 84 if (clientAdapter == null) 48 clientAdapter = ServiceLocator.GetClientAdapter(); 85 clientAdapter = 86 this.Session.GetDataAdapter<ClientInfo, IClientAdapter>(); 49 87 50 88 return clientAdapter; … … 57 95 get { 58 96 if (resultsAdapter == null) { 59 resultsAdapter = ServiceLocator.GetJobResultsAdapter(); 97 resultsAdapter = 98 this.Session.GetDataAdapter<JobResult, IJobResultsAdapter>(); 60 99 } 61 100 … … 64 103 } 65 104 #endregion 105 106 public JobAdapter(): base(new JobAdapterWrapper()) { 107 } 66 108 67 109 #region Overrides … … 176 218 return row; 177 219 } 178 179 protected override void UpdateRow(dsHiveServer.JobRow row) {180 Adapter.Update(row);181 }182 183 protected override dsHiveServer.JobRow184 InsertNewRow(Job job) {185 dsHiveServer.JobDataTable data =186 new dsHiveServer.JobDataTable();187 188 dsHiveServer.JobRow row = data.NewJobRow();189 row.JobId = job.Id;190 data.AddJobRow(row);191 192 return row;193 }194 195 protected override dsHiveServer.JobRow196 InsertNewRowInCache(Job job) {197 dsHiveServer.JobRow row = cache.NewJobRow();198 row.JobId = job.Id;199 cache.AddJobRow(row);200 201 return row;202 }203 204 protected override void FillCache() {205 Adapter.FillByActive(cache);206 }207 208 protected override void SynchronizeWithDb() {209 this.Adapter.Update(cache);210 }211 212 protected override bool PutInCache(Job job) {213 return job != null214 && (job.State == State.calculating215 || job.State == State.idle);216 }217 218 protected override IEnumerable<dsHiveServer.JobRow>219 FindById(Guid id) {220 return Adapter.GetDataById(id);221 }222 223 protected override dsHiveServer.JobRow224 FindCachedById(Guid id) {225 return cache.FindByJobId(id);226 }227 228 protected override IEnumerable<dsHiveServer.JobRow>229 FindAll() {230 return FindMultipleRows(231 new Selector(Adapter.GetData),232 new Selector(cache.AsEnumerable<dsHiveServer.JobRow>));233 }234 235 220 #endregion 236 221 … … 242 227 delegate() { 243 228 return Adapter.GetDataByParentJob(job.Id); 244 },245 delegate() {246 return from j in247 cache.AsEnumerable<dsHiveServer.JobRow>()248 where !j.IsParentJobIdNull() &&249 j.ParentJobId == job.Id250 select j;251 229 }); 252 230 } … … 260 238 delegate() { 261 239 return Adapter.GetDataByState(state.ToString()); 262 },263 delegate() {264 return from job in265 cache.AsEnumerable<dsHiveServer.JobRow>()266 where !job.IsJobStateNull() &&267 job.JobState == state.ToString()268 select job;269 240 }); 270 241 } … … 276 247 delegate() { 277 248 return Adapter.GetDataByClient(client.Id); 278 },279 delegate() {280 return from job in281 cache.AsEnumerable<dsHiveServer.JobRow>()282 where !job.IsResourceIdNull() &&283 job.ResourceId == client.Id284 select job;285 249 }); 286 250 } … … 296 260 delegate() { 297 261 return Adapter.GetDataByCalculatingClient(client.Id); 298 },299 delegate() {300 return from job in301 cache.AsEnumerable<dsHiveServer.JobRow>()302 where !job.IsResourceIdNull() &&303 job.ResourceId == client.Id &&304 !job.IsJobStateNull() &&305 job.JobState == "calculating"306 select job;307 262 }); 308 263 } … … 311 266 } 312 267 313 public ICollection<Job> GetJobsOf(Guid userId) { 314 throw new NotImplementedException(); 315 268 public ICollection<Job> GetJobsOf(Guid userId) { 316 269 return 317 270 base.FindMultiple( 318 271 delegate() { 319 272 return Adapter.GetDataByUser(userId); 320 }, 321 delegate() { 322 return from job in 323 cache.AsEnumerable<dsHiveServer.JobRow>() 324 where !job.IsUserIdNull() && 325 job.UserId == Guid.Empty 326 select job; 327 }); 328 } 329 330 public override bool Delete(Job job) { 273 }); 274 } 275 276 protected override bool doDelete(Job job) { 331 277 if (job != null) { 332 278 dsHiveServer.JobRow row = … … 342 288 } 343 289 344 return base. Delete(job);290 return base.doDelete(job); 345 291 } 346 292 }
Note: See TracChangeset
for help on using the changeset viewer.