Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/sources/HeuristicLab.Hive.Server.ADODataAccess/JobResultsAdapter.cs @ 1031

Last change on this file since 1031 was 1017, checked in by svonolfe, 16 years ago

Fixed ResultsAdapter (#372)

File size: 3.6 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using HeuristicLab.Hive.Server.Core.InternalInterfaces.DataAccess;
6using HeuristicLab.Hive.Contracts.BusinessObjects;
7
8namespace HeuristicLab.Hive.Server.ADODataAccess {
9  class JobResultsAdapter:
10    DataAdapterBase<dsHiveServerTableAdapters.JobResultTableAdapter,
11                    JobResult,
12                    dsHiveServer.JobResultRow>,
13    IJobResultsAdapter {
14    #region Fields
15    dsHiveServer.JobResultDataTable data =
16        new dsHiveServer.JobResultDataTable();
17
18    private IClientAdapter clientAdapter = null;
19
20    private IClientAdapter ClientAdapter {
21      get {
22        if (clientAdapter == null)
23          clientAdapter = ServiceLocator.GetClientAdapter();
24
25        return clientAdapter;
26      }
27    }
28
29    private IJobAdapter jobAdapter = null;
30
31    private IJobAdapter JobAdapter {
32      get {
33        if (jobAdapter == null)
34          jobAdapter = ServiceLocator.GetJobAdapter();
35
36        return jobAdapter;
37      }
38    }
39    #endregion
40
41    #region Overrides
42    protected override dsHiveServer.JobResultRow Convert(JobResult result,
43      dsHiveServer.JobResultRow row) {
44      if (row != null && result != null) {
45        if (result.Job != null)
46          row.JobId = result.Job.Id;
47        else
48          row.SetJobIdNull();
49
50        if (result.Result != null)
51          row.JobResult = result.Result;
52        else
53          row.SetJobResultNull();
54
55        if (result.Client != null)  {
56          ClientInfo client =
57                 ClientAdapter.GetById(result.Client.ClientId);
58
59          if (client != null)
60            row.ResourceId = client.Id;
61          else
62            row.SetResourceIdNull();
63        }           
64        else
65          row.SetResourceIdNull();
66
67        return row;
68      } else
69        return null;
70    }
71
72    protected override JobResult Convert(dsHiveServer.JobResultRow row,
73      JobResult result) {
74      if (row != null && result != null) {
75        result.Id = row.JobResultId;
76
77        if (!row.IsJobIdNull())
78          result.Job = JobAdapter.GetById(row.JobId);
79        else
80          result.Job = null;
81
82        if (!row.IsJobResultNull())
83          result.Result = row.JobResult;
84        else
85          result.Result = null;
86
87        if (!row.IsResourceIdNull())
88          result.Client = ClientAdapter.GetById(row.ResourceId);
89        else
90          result.Client = null;
91
92        return result;
93      } else
94        return null;
95    }
96
97    protected override void UpdateRow(dsHiveServer.JobResultRow row) {
98      adapter.Update(row);
99    }
100
101    protected override dsHiveServer.JobResultRow InsertNewRow(JobResult obj) {
102      dsHiveServer.JobResultRow row = data.NewJobResultRow();
103      data.AddJobResultRow(row);
104
105      return row;
106    }
107
108    protected override IEnumerable<dsHiveServer.JobResultRow> FindById(long id) {
109      return adapter.GetDataById(id);
110    }
111
112    protected override IEnumerable<dsHiveServer.JobResultRow> FindAll() {
113      return adapter.GetData();
114    }
115    #endregion
116
117    #region IJobResultsAdapter Members
118    public override void Update(JobResult result) {
119      if (result != null) {
120        ClientAdapter.Update(result.Client);
121        JobAdapter.Update(result.Job);
122
123        base.Update(result);
124      }
125    }
126
127    public ICollection<JobResult> GetResultsOf(Job job) {
128      if (job != null) {
129        return
130          base.FindMultiple(
131            delegate() {
132              return adapter.GetDataByJob(job.Id);
133            });
134      }
135
136      return null;
137    }
138    #endregion
139  }
140}
Note: See TracBrowser for help on using the repository browser.