From 7f6283a8157bf56bb3536c0e46cef2b824764f44 Mon Sep 17 00:00:00 2001 From: Rokas Puzonas Date: Sun, 15 Sep 2024 14:59:08 +0300 Subject: [PATCH] add getting new messages --- Lab1/ChatRoom/ChatRoomLogic.cs | 18 ++++++++++++++++++ Lab1/ChatRoom/ChatRoomService.cs | 2 +- Lab1/ChatRoom/ChatRoomState.cs | 1 + Lab1/ChatRoomContract/IChatRoomService.cs | 2 +- Lab1/Moderator/Moderator.cs | 6 ++++++ 5 files changed, 27 insertions(+), 2 deletions(-) diff --git a/Lab1/ChatRoom/ChatRoomLogic.cs b/Lab1/ChatRoom/ChatRoomLogic.cs index 170fc33..f461c47 100644 --- a/Lab1/ChatRoom/ChatRoomLogic.cs +++ b/Lab1/ChatRoom/ChatRoomLogic.cs @@ -85,6 +85,24 @@ public class ChatRoomLogic return true; } + public ChatRoomContract.Message? GetNewMessage() + { + foreach (var message in state.messages) + { + if (message.given) continue; + if (message.status != MessageStatus.WaitingApproval) continue; + + message.given = true; + return new ChatRoomContract.Message{ + id = message.id, + contents = message.contents, + needsToBeCensored = message.needsToBeCensored + }; + } + + return null; + } + public void BackgroundTask() { while (true) diff --git a/Lab1/ChatRoom/ChatRoomService.cs b/Lab1/ChatRoom/ChatRoomService.cs index 113c799..b6bd741 100644 --- a/Lab1/ChatRoom/ChatRoomService.cs +++ b/Lab1/ChatRoom/ChatRoomService.cs @@ -17,7 +17,7 @@ public class ChatRoomService : ChatRoomContract.IChatRoomService public ChatRoomContract.Message? GetNewMessage() { - throw new NotImplementedException(); + return logic.GetNewMessage(); } public int GetStrikes(int clientId) diff --git a/Lab1/ChatRoom/ChatRoomState.cs b/Lab1/ChatRoom/ChatRoomState.cs index 6f34280..566ba00 100644 --- a/Lab1/ChatRoom/ChatRoomState.cs +++ b/Lab1/ChatRoom/ChatRoomState.cs @@ -22,6 +22,7 @@ public class Message public int clientId; public string contents; public bool needsToBeCensored; + public bool given = false; public MessageStatus status = MessageStatus.WaitingApproval; } diff --git a/Lab1/ChatRoomContract/IChatRoomService.cs b/Lab1/ChatRoomContract/IChatRoomService.cs index 0a716f1..4eeca52 100644 --- a/Lab1/ChatRoomContract/IChatRoomService.cs +++ b/Lab1/ChatRoomContract/IChatRoomService.cs @@ -2,7 +2,7 @@ public class Message { - int id; + public int id; public string contents; public bool needsToBeCensored; } diff --git a/Lab1/Moderator/Moderator.cs b/Lab1/Moderator/Moderator.cs index 8033b3e..fd02805 100644 --- a/Lab1/Moderator/Moderator.cs +++ b/Lab1/Moderator/Moderator.cs @@ -60,7 +60,13 @@ internal class Moderator while (true) { + var message = chatRoom.GetNewMessage(); + if (message != null) + { + log.Info($"Checking message ({message.id}): {message.contents}"); + } + Thread.Sleep(1 * 1000); } }