Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/sources/HeuristicLab.Hive.Server.LINQDataAccess/3.2/ClientDao.cs @ 3006

Last change on this file since 3006 was 2904, checked in by kgrading, 15 years ago

added functionality (#830)

File size: 3.4 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using HeuristicLab.Hive.Contracts.BusinessObjects;
6
7namespace HeuristicLab.Hive.Server.LINQDataAccess {
8  public class ClientDao: BaseDao, IClientDao {
9
10    public ClientDao() {     
11    }
12
13    public ClientInfo FindById(Guid id) {
14      return (from client in Context.Clients
15              where client.ResourceId.Equals(id)
16              select
17                new ClientInfo {
18                  CpuSpeedPerCore = client.CPUSpeed,
19                  FreeMemory = client.FreeMemory,
20                  Id = client.ResourceId,
21                  Login = client.Login,
22                  Memory = client.Memory,
23                  Name = client.Resource.Name,
24                  NrOfCores = client.NumberOfCores,
25                  NrOfFreeCores = client.NumberOfFreeCores,
26                  State = (State)Enum.Parse(typeof(State), client.Status)
27                }
28            ).SingleOrDefault();     
29    }
30
31    public IEnumerable<ClientInfo> FindAll() {
32      return (from client in Context.Clients
33              select
34                new ClientInfo {
35                                 CpuSpeedPerCore = client.CPUSpeed,
36                                 FreeMemory = client.FreeMemory,
37                                 Id = client.ResourceId,
38                                 Login = client.Login,
39                                 Memory = client.Memory,
40                                 Name = client.Resource.Name,
41                                 NrOfCores = client.NumberOfCores,
42                                 NrOfFreeCores = client.NumberOfFreeCores,
43                                 State = (State) Enum.Parse(typeof (State), client.Status)
44                               }
45             ).ToList();
46    }
47
48 
49    public ClientInfo Insert(ClientInfo info) {
50      Client c = new Client {
51                              CPUSpeed = info.CpuSpeedPerCore,
52                              FreeMemory = info.FreeMemory,
53                              Resource = new Resource {Name = info.Name, ResourceId = info.Id},
54                              Login = info.Login,
55                              Memory = info.Memory,
56                              NumberOfCores = info.NrOfCores,
57                              NumberOfFreeCores = info.NrOfFreeCores,
58                              Status = Enum.GetName(typeof (State), info.State)
59                            };
60
61      Context.Clients.InsertOnSubmit(c);
62      Context.SubmitChanges();
63      info.Id = c.ResourceId;
64      return info;
65    }
66
67    public void Delete(ClientInfo info) {
68      Client client = Context.Clients.SingleOrDefault(c => c.ResourceId.Equals(info.Id));
69      Context.Clients.DeleteOnSubmit(client);
70    }
71
72    public void Update(ClientInfo info) {
73      Client client = Context.Clients.SingleOrDefault(c => c.ResourceId.Equals(info.Id));
74      client.CPUSpeed = info.CpuSpeedPerCore;
75      client.FreeMemory = info.FreeMemory;
76      client.Resource.Name = info.Name;
77      client.Login = info.Login;
78      client.Memory = info.Memory;
79      client.NumberOfCores = info.NrOfCores;
80      client.NumberOfFreeCores = info.NrOfFreeCores;
81      client.Status = Enum.GetName(typeof (State), info.State);
82      Context.SubmitChanges();
83    }
84
85
86
87    #region IGenericDao<ClientInfo,Client> Members
88
89
90
91    #endregion
92  }
93}
Note: See TracBrowser for help on using the repository browser.