}//addRoom() /// <summary> /// Dodawanie użytkownika do tabel UsersInRoom i UsersInOldRoom /// </summary> /// <param name="roomId">ID pokoju</param> /// <param name="userId">ID użytkownika</param> private void addUserToRoom(int roomId, string userId) { using (var db = new conferenceEntities2()) { // dodawanie użytkownika do aktywnego pokoju try { // jeśli rzuci wyjątek to znaczy, że użytkownik jeszcze nie jest dodany db.UsersInRoom.First(u => u.roomId == roomId && u.userId == userId); }//try catch (InvalidOperationException) { // dodaj użytkownika UsersInRoom userInRoom = new UsersInRoom() { roomId = roomId, userId = userId }; db.UsersInRoom.Add(userInRoom); }//catch // dodawanie użytkownika do archiwalnego pokoju try { // jw. db.UsersInOldRoom.First(u => u.oldRoomId == roomId && u.userId == userId); }//try catch (InvalidOperationException) { UsersInOldRoom usersInOldRoom = new UsersInOldRoom() { oldRoomId = roomId, userId = userId }; db.UsersInOldRoom.Add(usersInOldRoom); }//catch // zapisz zmiany db.SaveChanges(); } //using } //addUserToRoom()
public void Update(int rowNum, Vector2i position, Vector2i size) { rowN = rowNum; int offsetPosX = 4; int offsetPosY = (20 * rowNum) + (int)29; int offsetX = 0; int offsetY = 0; bool isOdd = rowNum % 2 != 0; if (isOdd) { offsetY += 20; } edgeL.SetPosition(position + new Vector2i(offsetPosX, offsetPosY)); edgeL.SourceRect = new Rectangle((int)0 + offsetX, 0 + offsetY, (int)edgeL.Size.X, (int)edgeL.Size.Y); images.Add(edgeL); edgeR.SetPosition(position + new Vector2i(size.X - edgeR.Size.X - 1, offsetPosY)); edgeR.SourceRect = new Rectangle((int)0 + offsetX, 0 + offsetY, (int)edgeR.Size.X, (int)edgeR.Size.Y); images.Add(edgeR); row.SetPosition(position + new Vector2i(offsetPosX + edgeL.dimensions.X, offsetPosY)); row.SourceRect = new Rectangle((int)0 + offsetX, 0 + offsetY, (int)row.Size.X, (int)row.Size.Y); images.Add(row); roomName.SetPosition(position + new Vector2i(offsetPosX + 42, offsetPosY + row.Size.Y / 2 - roomName.measureString().Y / 2)); fonts.Add(roomName); users.SetText(room.UsersNow + ""); float textIconWidth = usersIcon.Size.X + 7 + users.measureString().X; int offsetRightIcon = (int)Math.Ceiling((UsersInRoom.Size.X - textIconWidth) / 2); int percentageInRoom = (int)Math.Ceiling((double)(room.UsersNow / room.UsersMax) * 100); int multiplicationFromPercentage = 0; if (room.UsersNow > 0) { multiplicationFromPercentage = 1; } if (percentageInRoom > 40) { multiplicationFromPercentage = 2; } if (percentageInRoom > 90) { multiplicationFromPercentage = 3; } UsersInRoom.SetPosition(position + new Vector2i(offsetPosX, offsetPosY + 1)); UsersInRoom.SourceRect = new Rectangle((int)(UsersInRoom.Size.X * multiplicationFromPercentage), 0, (int)UsersInRoom.Size.X, (int)UsersInRoom.Size.Y); images.Add(UsersInRoom); users.SetPosition(position + new Vector2i(offsetRightIcon + offsetPosX + 6 + usersIcon.Size.X, offsetPosY - (usersIcon.Size.Y / 2) + (users.measureString().Y / 2))); fonts.Add(users); usersIcon.SetPosition(position + new Vector2i(offsetRightIcon + offsetPosX, offsetPosY - (usersIcon.Size.Y / 2) + (UsersInRoom.Size.Y / 2))); images.Add(usersIcon); Info.SetPosition(position + new Vector2i(size.X - Info.Size.X - 4 - edgeR.Size.X, offsetPosY + 1)); images.Add(Info); Group.SetPosition(position + new Vector2i(size.X - Info.Size.X - 4 - 4 - Group.Size.X - edgeR.Size.X, offsetPosY + 5)); if (room.Group != null) { images.Add(Group); } if (room.Acces == 1) { Lock.SetPosition(position + new Vector2i(size.X - Info.Size.X - 4 - 4 - Group.Size.X - 4 - Lock.Size.X - edgeR.Size.X, offsetPosY + 2)); Lock.SourceRect = new Rectangle((int)(0 * Lock.Size.X), 0, (int)Lock.Size.X, (int)Lock.Size.Y); images.Add(Lock); } else if (room.Acces == 2) { Lock.SetPosition(position + new Vector2i(size.X - Info.Size.X - 4 - 4 - Group.Size.X - 4 - Lock.Size.X - edgeR.Size.X, offsetPosY + 2)); Lock.SourceRect = new Rectangle((int)(1 * Lock.Size.X), 0, (int)Lock.Size.X, (int)Lock.Size.Y); images.Add(Lock); } else if (room.Acces == 3) { Lock.SetPosition(position + new Vector2i(size.X - Info.Size.X - 4 - 4 - Group.Size.X - 4 - Lock.Size.X - edgeR.Size.X, offsetPosY + 2)); Lock.SourceRect = new Rectangle((int)(2 * Lock.Size.X), 0, (int)Lock.Size.X, (int)Lock.Size.Y); images.Add(Lock); } }