public void AddRoomRole(RoomRole roomRole) { var room = Rooms.FirstOrDefault(r => r.Id == roomRole.Room_Id); if (room != null) { lock (RoomRoles) { if (RoomRoles.FirstOrDefault(rr => rr.Room_Id == roomRole.Room_Id && rr.User_Id == roomRole.User_Id && rr.Role_Id == roomRole.Role_Id) == null) { RoomRoles.Add(roomRole); lock (room.RoomRoles) { room.RoomRoles.Add(roomRole); } } } } }
public void RemoveRoomRole(int roomId, int roleId, int userId) { var room = Rooms.FirstOrDefault(r => r.Id == roomId); if (room != null) { lock (RoomRoles) { var roomRole = RoomRoles.FirstOrDefault(rr => rr.Room_Id == roomId && rr.User_Id == userId && rr.Role_Id == roleId); if (roomRole != null) { lock (room.RoomRoles) { room.RoomRoles.Remove(roomRole); } RoomRoles.Remove(roomRole); } } } }
public void BuildRelationship() { foreach (var rg in RoomGroups) { rg.SubRoomGroups = new List <RoomGroup>(); rg.SubRoomGroups.AddRange(RoomGroups.Where(g => g.ParentGroup_Id.HasValue && g.ParentGroup_Id.Value == rg.Id)); rg.Rooms = Rooms.Where(r => r.RoomGroup_Id == rg.Id).ToList(); } GiftGroups.ForEach(giftGroup => { giftGroup.Gifts = Gifts.Where(g => g.GiftGroup_Id == giftGroup.Id).ToList(); }); foreach (var room in Rooms) { room.RoomRoles = new List <RoomRole>(); var rrs = RoomRoles.Where(r => r.Room_Id == room.Id); if (rrs != null) { room.RoomRoles.AddRange(rrs); } } foreach (var role in Roles) { if (role.Application_Id == applicationId || role.Application_Id == BuiltIns.AllApplication.Id) { role.RoleCommands = new List <RoleCommandView>(); var rcs = RoleCommands.Where(rc => (rc.SourceRole_Id == role.Id || rc.SourceRole_Id == BuiltIns.AllRole.Id) && (rc.Application_Id == applicationId || rc.Application_Id == BuiltIns.AllApplication.Id)); if (rcs != null) { role.RoleCommands.AddRange(rcs); } } } }