Free cookie consent management tool by TermsFeed Policy Generator

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

Last change on this file since 1449 was 1449, checked in by svonolfe, 15 years ago

Refactored DAL (now using GUIDs as IDs instead of longs) (#527)

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