- Timestamp:
- 12/16/08 17:26:43 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Hive.Server.ADODataAccess/ClientGroupAdapter.cs
r991 r995 31 31 32 32 namespace HeuristicLab.Hive.Server.ADODataAccess { 33 class ClientGroupAdapter : DataAdapterBase, IClientGroupAdapter { 34 private dsHiveServerTableAdapters.ClientGroupTableAdapter adapter = 35 new dsHiveServerTableAdapters.ClientGroupTableAdapter(); 36 37 private dsHiveServer.ClientGroupDataTable data = 38 new dsHiveServer.ClientGroupDataTable(); 33 class ClientGroupAdapter : 34 DataAdapterBase<dsHiveServerTableAdapters.ClientGroupTableAdapter, 35 ClientGroup, 36 dsHiveServer.ClientGroupRow>, 37 IClientGroupAdapter { 38 #region Fields 39 dsHiveServer.ClientGroupDataTable data = 40 new dsHiveServer.ClientGroupDataTable(); 39 41 40 42 private dsHiveServerTableAdapters.ClientGroup_ResourceTableAdapter resourceClientGroupAdapter = 41 43 new dsHiveServerTableAdapters.ClientGroup_ResourceTableAdapter(); 42 43 private dsHiveServer.ClientGroup_ResourceDataTable resourceClientGroupData =44 new dsHiveServer.ClientGroup_ResourceDataTable();45 44 46 45 private IResourceAdapter resourceAdapter = null; … … 65 64 } 66 65 } 67 68 public ClientGroupAdapter() { 69 adapter.Fill(data); 70 resourceClientGroupAdapter.Fill(resourceClientGroupData); 71 } 72 73 protected override void Update() { 74 this.adapter.Update(this.data); 75 this.resourceClientGroupAdapter.Update(resourceClientGroupData); 76 } 77 78 private ClientGroup Convert(dsHiveServer.ClientGroupRow row, 66 #endregion 67 68 #region Overrides 69 protected override ClientGroup Convert(dsHiveServer.ClientGroupRow row, 79 70 ClientGroup clientGroup) { 80 71 if (row != null && clientGroup != null) { 81 72 /*Parent - Permission Owner*/ 82 clientGroup. ResourceId = row.ResourceId;83 ResAdapter.Get ResourceById(clientGroup);73 clientGroup.Id = row.ResourceId; 74 ResAdapter.GetById(clientGroup); 84 75 85 76 //first check for created references 86 IEnumerable<dsHiveServer.ClientGroup_ResourceRow> clientGroupRows = 87 from resource in 88 resourceClientGroupData.AsEnumerable<dsHiveServer.ClientGroup_ResourceRow>() 89 where resource.ClientGroupId == clientGroup.ResourceId 90 select resource; 77 dsHiveServer.ClientGroup_ResourceDataTable clientGroupRows = 78 resourceClientGroupAdapter.GetDataByClientGroupId(clientGroup.Id); 91 79 92 80 foreach (dsHiveServer.ClientGroup_ResourceRow resourceClientGroupRow in … … 97 85 from p in 98 86 clientGroup.Resources 99 where p. ResourceId == resourceClientGroupRow.ResourceId87 where p.Id == resourceClientGroupRow.ResourceId 100 88 select p; 101 89 if (resources.Count<Resource>() == 1) … … 104 92 if (resource == null) { 105 93 Resource res = 106 ClientAdapter.Get ClientById(resourceClientGroupRow.ResourceId);94 ClientAdapter.GetById(resourceClientGroupRow.ResourceId); 107 95 108 96 if (res == null) { 109 97 //is a client group 110 98 res = 111 Get ClientGroupById(resourceClientGroupRow.ResourceId);99 GetById(resourceClientGroupRow.ResourceId); 112 100 } 113 101 … … 122 110 123 111 foreach (Resource resource in clientGroup.Resources) { 124 dsHiveServer.ClientGroup_Resource Row permOwnerUserGroupRow=125 resourceClientGroup Data.FindByClientGroupIdResourceId(126 clientGroup.ResourceId,127 resource.ResourceId);128 129 if ( permOwnerUserGroupRow == null) {112 dsHiveServer.ClientGroup_ResourceDataTable found = 113 resourceClientGroupAdapter.GetDataByClientGroupResourceId( 114 clientGroup.Id, 115 resource.Id); 116 117 if (found.Count != 1) { 130 118 deleted.Add(resource); 131 119 } … … 141 129 } 142 130 143 pr ivate dsHiveServer.ClientGroupRow Convert(ClientGroup clientGroup,131 protected override dsHiveServer.ClientGroupRow Convert(ClientGroup clientGroup, 144 132 dsHiveServer.ClientGroupRow row) { 145 133 if (clientGroup != null && row != null) { 146 row.ResourceId = clientGroup. ResourceId;134 row.ResourceId = clientGroup.Id; 147 135 148 136 //update references … … 150 138 //first update the member to make sure it exists in the DB 151 139 if (resource is ClientInfo) { 152 ClientAdapter.Update Client(resource as ClientInfo);140 ClientAdapter.Update(resource as ClientInfo); 153 141 } else if (resource is ClientGroup) { 154 Update ClientGroup(resource as ClientGroup);142 Update(resource as ClientGroup); 155 143 } 156 144 157 145 //secondly check for created references 158 146 dsHiveServer.ClientGroup_ResourceRow resourceClientGroupRow = 159 resourceClientGroupData.FindByClientGroupIdResourceId( 160 clientGroup.ResourceId, 161 resource.ResourceId); 147 null; 148 dsHiveServer.ClientGroup_ResourceDataTable found = 149 resourceClientGroupAdapter.GetDataByClientGroupResourceId( 150 clientGroup.Id, 151 resource.Id); 152 if (found.Count == 1) 153 resourceClientGroupRow = found[0]; 162 154 163 155 if (resourceClientGroupRow == null) { 164 156 resourceClientGroupRow = 165 resourceClientGroupData.NewClientGroup_ResourceRow();157 found.NewClientGroup_ResourceRow(); 166 158 167 159 resourceClientGroupRow.ResourceId = 168 resource. ResourceId;160 resource.Id; 169 161 resourceClientGroupRow.ClientGroupId = 170 clientGroup.ResourceId; 171 172 resourceClientGroupData.AddClientGroup_ResourceRow( 162 clientGroup.Id; 163 164 found.AddClientGroup_ResourceRow(resourceClientGroupRow); 165 166 resourceClientGroupAdapter.Update( 173 167 resourceClientGroupRow); 174 168 } … … 176 170 177 171 //thirdly check for deleted references 178 IEnumerable<dsHiveServer.ClientGroup_ResourceRow> clientGroupRows = 179 from permOwner in 180 resourceClientGroupData.AsEnumerable<dsHiveServer.ClientGroup_ResourceRow>() 181 where permOwner.ClientGroupId == clientGroup.ResourceId 182 select permOwner; 172 dsHiveServer.ClientGroup_ResourceDataTable clientGroupRows = 173 resourceClientGroupAdapter.GetDataByClientGroupId(clientGroup.Id); 183 174 184 175 ICollection<dsHiveServer.ClientGroup_ResourceRow> deleted = … … 192 183 from r in 193 184 clientGroup.Resources 194 where r. ResourceId == resourceClientGroupRow.ResourceId185 where r.Id == resourceClientGroupRow.ResourceId 195 186 select r; 196 187 … … 203 194 } 204 195 205 foreach (dsHiveServer.ClientGroup_ResourceRow resoruceClientGroupRow in 206 deleted) { 207 resourceClientGroupData.RemoveClientGroup_ResourceRow( 208 resoruceClientGroupRow); 209 } 210 196 foreach (dsHiveServer.ClientGroup_ResourceRow resourceClientGroupRow in deleted) { 197 resourceClientGroupRow.Delete(); 198 resourceClientGroupAdapter.Update(resourceClientGroupRow); 199 } 211 200 } 212 201 213 202 return row; 214 203 } 204 205 protected override dsHiveServer.ClientGroupRow 206 InsertNewRow(ClientGroup group) { 207 dsHiveServer.ClientGroupRow row = 208 data.NewClientGroupRow(); 209 210 row.ResourceId = group.Id; 211 212 data.AddClientGroupRow(row); 213 adapter.Update(row); 214 215 return row; 216 } 217 218 protected override void 219 UpdateRow(dsHiveServer.ClientGroupRow row) { 220 adapter.Update(row); 221 } 222 223 protected override IEnumerable<dsHiveServer.ClientGroupRow> 224 FindById(long id) { 225 return adapter.GetDataById(id); 226 } 227 228 protected override IEnumerable<dsHiveServer.ClientGroupRow> 229 FindAll() { 230 return adapter.GetData(); 231 } 232 #endregion 215 233 216 234 #region IClientGroupAdapter Members 217 235 [MethodImpl(MethodImplOptions.Synchronized)] 218 public void UpdateClientGroup(ClientGroup group) {236 public override void Update(ClientGroup group) { 219 237 if (group != null) { 220 ResAdapter.UpdateResource(group); 221 222 dsHiveServer.ClientGroupRow row = 223 data.FindByResourceId(group.ResourceId); 224 225 if (row == null) { 226 row = data.NewClientGroupRow(); 227 row.ResourceId = group.ResourceId; 228 data.AddClientGroupRow(row); 229 } 230 231 Convert(group, row); 232 } 233 } 234 235 public ClientGroup GetClientGroupById(long clientGroupId) { 236 ClientGroup clientGroup = new ClientGroup(); 237 238 dsHiveServer.ClientGroupRow row = 239 data.FindByResourceId(clientGroupId); 240 241 if (row != null) { 242 Convert(row, clientGroup); 243 244 return clientGroup; 245 } else { 246 return null; 247 } 248 } 249 250 public ClientGroup GetClientGroupByName(string name) { 238 ResAdapter.Update(group); 239 240 base.Update(group); 241 } 242 } 243 244 public ClientGroup GetByName(string name) { 251 245 ClientGroup group = new ClientGroup(); 252 253 246 Resource res = 254 ResAdapter.Get ResourceByName(name);247 ResAdapter.GetByName(name); 255 248 256 249 if (res != null) { 257 dsHiveServer.ClientGroupRow row = 258 data.FindByResourceId(res.ResourceId); 259 260 if (row != null) { 261 Convert(row, group); 262 263 return group; 264 } 250 return GetById(res.Id); 265 251 } 266 252 267 253 return null; 268 }269 270 public ICollection<ClientGroup> GetAllClientGroups() {271 ICollection<ClientGroup> allClientGroups =272 new List<ClientGroup>();273 274 foreach (dsHiveServer.ClientGroupRow row in data) {275 ClientGroup clientGroup = new ClientGroup();276 277 Convert(row, clientGroup);278 allClientGroups.Add(clientGroup);279 }280 281 return allClientGroups;282 254 } 283 255 … … 288 260 if (resource != null) { 289 261 IEnumerable<dsHiveServer.ClientGroup_ResourceRow> clientGroupRows = 290 from clientGroup in 291 resourceClientGroupData.AsEnumerable<dsHiveServer.ClientGroup_ResourceRow>() 292 where clientGroup.ResourceId == resource.ResourceId 293 select clientGroup; 262 resourceClientGroupAdapter.GetDataByResourceId(resource.Id); 294 263 295 264 foreach (dsHiveServer.ClientGroup_ResourceRow clientGroupRow in 296 265 clientGroupRows) { 297 266 ClientGroup clientGroup = 298 Get ClientGroupById(clientGroupRow.ClientGroupId);267 GetById(clientGroupRow.ClientGroupId); 299 268 clientGroups.Add(clientGroup); 300 269 } … … 305 274 306 275 [MethodImpl(MethodImplOptions.Synchronized)] 307 public bool DeleteClientGroup(ClientGroup group) {276 public override bool Delete(ClientGroup group) { 308 277 if (group != null) { 309 dsHiveServer.ClientGroupRow row = 310 data.FindByResourceId(group.ResourceId); 311 312 if (row != null) { 313 ICollection<dsHiveServer.ClientGroup_ResourceRow> deleted = 314 new List<dsHiveServer.ClientGroup_ResourceRow>(); 315 316 foreach (dsHiveServer.ClientGroup_ResourceRow resourceClientGroupRow in 317 resourceClientGroupData) { 318 if (resourceClientGroupRow.ClientGroupId == group.ResourceId || 319 resourceClientGroupRow.ResourceId == group.ResourceId) { 320 deleted.Add(resourceClientGroupRow); 321 } 322 } 323 324 foreach (dsHiveServer.ClientGroup_ResourceRow resourceClientGroupRow in 325 deleted) { 326 resourceClientGroupData.RemoveClientGroup_ResourceRow( 327 resourceClientGroupRow); 328 } 329 330 row.Delete(); 331 adapter.Update(row); 332 333 return ResAdapter.DeleteResource(group); 334 } 278 return base.Delete(group) && 279 ResAdapter.Delete(group); 335 280 } 336 281
Note: See TracChangeset
for help on using the changeset viewer.