- Timestamp:
- 12/16/08 17:26:43 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Hive.Server.ADODataAccess/ResourceAdapter.cs
r976 r995 29 29 30 30 namespace HeuristicLab.Hive.Server.ADODataAccess { 31 class ResourceAdapter: DataAdapterBase, IResourceAdapter { 32 private dsHiveServerTableAdapters.ResourceTableAdapter adapter = 33 new dsHiveServerTableAdapters.ResourceTableAdapter(); 34 35 private dsHiveServer.ResourceDataTable data = 31 class ResourceAdapter: 32 CachedDataAdapter< 33 dsHiveServerTableAdapters.ResourceTableAdapter, 34 Resource, 35 dsHiveServer.ResourceRow, 36 dsHiveServer.ResourceDataTable>, 37 IResourceAdapter { 38 #region Fields 39 dsHiveServer.ResourceDataTable data = 36 40 new dsHiveServer.ResourceDataTable(); 37 41 38 public ResourceAdapter() { 39 adapter.Fill(data); 42 private IClientAdapter clientAdapter = null; 43 44 private IClientAdapter ClientAdapter { 45 get { 46 if (clientAdapter == null) 47 clientAdapter = ServiceLocator.GetClientAdapter(); 48 49 return clientAdapter; 50 } 40 51 } 52 #endregion 41 53 42 protected override void Update() { 43 this.adapter.Update(this.data); 44 } 45 46 private Resource Convert(dsHiveServer.ResourceRow row, 54 #region Overrides 55 protected override Resource Convert(dsHiveServer.ResourceRow row, 47 56 Resource resource) { 48 57 if (row != null && resource != null) { 49 resource. ResourceId = row.ResourceId;58 resource.Id = row.ResourceId; 50 59 if (!row.IsNameNull()) 51 60 resource.Name = row.Name; … … 58 67 } 59 68 60 pr ivate dsHiveServer.ResourceRow Convert(Resource resource,69 protected override dsHiveServer.ResourceRow Convert(Resource resource, 61 70 dsHiveServer.ResourceRow row) { 62 71 if (resource != null && row != null) { … … 68 77 } 69 78 79 protected override void UpdateRow(dsHiveServer.ResourceRow row) { 80 adapter.Update(row); 81 } 82 83 protected override dsHiveServer.ResourceRow 84 InsertNewRow(Resource resource) { 85 dsHiveServer.ResourceRow row = data.NewResourceRow(); 86 data.AddResourceRow(row); 87 88 return row; 89 } 90 91 protected override dsHiveServer.ResourceRow 92 InsertNewRowInCache(Resource resource) { 93 dsHiveServer.ResourceRow row = cache.NewResourceRow(); 94 cache.AddResourceRow(row); 95 96 return row; 97 } 98 99 protected override void FillCache() { 100 cache = adapter.GetDataByActive(); 101 } 102 103 public override void SyncWithDb() { 104 adapter.Update(cache); 105 } 106 107 protected override bool PutInCache(Resource obj) { 108 return (obj is ClientInfo && 109 (obj as ClientInfo).State != State.offline); 110 } 111 112 protected override IEnumerable<dsHiveServer.ResourceRow> 113 FindById(long id) { 114 return adapter.GetDataById(id); 115 } 116 117 protected override dsHiveServer.ResourceRow 118 FindCachedById(long id) { 119 return cache.FindByResourceId(id); 120 } 121 122 protected override IEnumerable<dsHiveServer.ResourceRow> 123 FindAll() { 124 return FindMultipleRows( 125 new Selector(adapter.GetData), 126 new Selector(cache.AsEnumerable<dsHiveServer.ResourceRow>)); 127 } 128 #endregion 129 70 130 #region IResourceAdapter Members 71 [MethodImpl(MethodImplOptions.Synchronized)] 72 public void UpdateResource(Resource resource) { 131 public bool GetById(Resource resource) { 73 132 if (resource != null) { 74 133 dsHiveServer.ResourceRow row = 75 data.FindByResourceId(resource.ResourceId);134 GetRowById(resource.Id); 76 135 77 if (row == null) {78 row = data.NewResourceRow();79 data.AddResourceRow(row);80 81 //write row to db to get primary key82 adapter.Update(row);83 }84 85 Convert(resource, row);86 resource.ResourceId = row.ResourceId;87 }88 }89 90 public bool GetResourceById(Resource resource) {91 if (resource != null) {92 dsHiveServer.ResourceRow row =93 data.FindByResourceId(resource.ResourceId);94 136 if (row != null) { 95 137 Convert(row, resource); … … 102 144 } 103 145 104 public Resource GetResourceById(long resourceId) { 105 Resource resource = new Resource(); 106 resource.ResourceId = resourceId; 107 108 if(GetResourceById(resource)) 109 return resource; 110 else 111 return null; 112 } 113 114 public Resource GetResourceByName(string name) { 115 dsHiveServer.ResourceRow row = null; 116 117 IEnumerable<dsHiveServer.ResourceRow> permOwners = 118 from r in 119 data.AsEnumerable<dsHiveServer.ResourceRow>() 120 where !r.IsNameNull() && r.Name == name 121 select r; 122 123 if (permOwners.Count<dsHiveServer.ResourceRow>() == 1) 124 row = permOwners.First<dsHiveServer.ResourceRow>(); 146 public Resource GetByName(string name) { 147 dsHiveServer.ResourceRow row = 148 base.FindSingleRow( 149 delegate() { 150 return adapter.GetDataByName(name); 151 }, 152 delegate() { 153 return from r in 154 cache.AsEnumerable<dsHiveServer.ResourceRow>() 155 where !r.IsNameNull() && 156 r.Name == name 157 select r; 158 }); 125 159 126 160 if (row != null) { … … 134 168 } 135 169 136 public ICollection<Resource> GetAllResources() {137 IList<Resource> allResources =138 new List<Resource>();139 140 foreach (dsHiveServer.ResourceRow row in data) {141 Resource resource = new Resource();142 Convert(row, resource);143 allResources.Add(resource);144 }145 146 return allResources;147 }148 149 [MethodImpl(MethodImplOptions.Synchronized)]150 public bool DeleteResource(Resource resource) {151 if(resource != null) {152 dsHiveServer.ResourceRow row =153 data.FindByResourceId(resource.ResourceId);154 155 if (row != null) {156 row.Delete();157 adapter.Update(row);158 159 return true;160 }161 }162 163 return false;164 }165 166 170 #endregion 167 171 }
Note: See TracChangeset
for help on using the changeset viewer.