Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/10/08 14:10:52 (15 years ago)
Author:
svonolfe
Message:

Fixed referential integrity between user and user group (#372)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Hive.Server.ADODataAccess/UserGroupAdapter.cs

    r936 r939  
    2828using HeuristicLab.Hive.Contracts.BusinessObjects;
    2929using System.Runtime.CompilerServices;
     30using System.Data;
    3031
    3132namespace HeuristicLab.Hive.Server.ADODataAccess {
     
    169170        foreach (dsHiveServer.PermissionOwner_UserGroupRow permOwnerUserGroupRow in
    170171          userGroupRows) {
    171           PermissionOwner permOwner = userGroup.Members.Single<PermissionOwner>(
    172             p => p.PermissionOwnerId == permOwnerUserGroupRow.PermissionOwnerId);
     172          PermissionOwner permOwner = null;
     173
     174          IEnumerable<PermissionOwner> permOwners =
     175            from p in
     176              userGroup.Members
     177            where p.PermissionOwnerId == permOwnerUserGroupRow.PermissionOwnerId
     178            select p;
     179
     180          if (permOwners.Count<PermissionOwner>() == 1)
     181            permOwner = permOwners.First<PermissionOwner>();
    173182
    174183          if (permOwner == null) {
     
    234243
    235244      return allUserGroups;
     245    }
     246
     247    public ICollection<UserGroup> MemberOf(PermissionOwner permOwner) {
     248      ICollection<UserGroup> userGroups =
     249        new List<UserGroup>();
     250     
     251      if (permOwner != null) {
     252        IEnumerable<dsHiveServer.PermissionOwner_UserGroupRow> userGroupRows =
     253         from userGroup in
     254           permOwnerUserGroupData.AsEnumerable<dsHiveServer.PermissionOwner_UserGroupRow>()
     255         where userGroup.PermissionOwnerId == permOwner.PermissionOwnerId
     256         select userGroup;
     257
     258        foreach (dsHiveServer.PermissionOwner_UserGroupRow userGroupRow in
     259          userGroupRows) {
     260          UserGroup userGroup =
     261            GetUserGroupById(userGroupRow.UserGroupId);
     262          userGroups.Add(userGroup);
     263        }
     264      }
     265
     266      return userGroups;
    236267    }
    237268
     
    249280            permOwnerUserGroupData) {
    250281            if (permOwnerUserGroupRow.UserGroupId == group.PermissionOwnerId ||
    251                 permOwnerUserGroupRow.PermissionOwnerId == group.PermissionOwnerId) {
     282              permOwnerUserGroupRow.PermissionOwnerId == group.PermissionOwnerId) {
    252283              deleted.Add(permOwnerUserGroupRow);
    253284            }
Note: See TracChangeset for help on using the changeset viewer.