50 lines
1.1 KiB
C#
50 lines
1.1 KiB
C#
using ChatRoomContract;
|
|
using NLog;
|
|
using Bogus;
|
|
|
|
namespace Moderator;
|
|
|
|
public class ModeratorLogic
|
|
{
|
|
private IChatRoomService chatRoom;
|
|
|
|
public ModeratorLogic(IChatRoomService chatRoom)
|
|
{
|
|
this.chatRoom = chatRoom;
|
|
}
|
|
|
|
public void Run()
|
|
{
|
|
Logger log = LogManager.GetCurrentClassLogger();
|
|
|
|
var faker = new Faker("en");
|
|
|
|
var name = faker.Name.FullName();
|
|
int clientId = chatRoom.RegisterClient(name);
|
|
log.Info($"Registered with client id {clientId}");
|
|
|
|
Console.Title = $"Moderator | {name} | {clientId}";
|
|
|
|
while (true)
|
|
{
|
|
var message = chatRoom.GetNewMessage();
|
|
if (message != null)
|
|
{
|
|
log.Info($"Checking message ({message.id}): {message.contents}");
|
|
Thread.Sleep(500);
|
|
|
|
if (message.needsToBeCensored)
|
|
{
|
|
chatRoom.RejectMessage(message.id);
|
|
}
|
|
else
|
|
{
|
|
chatRoom.ApproveMessage(message.id);
|
|
}
|
|
}
|
|
|
|
Thread.Sleep(1 * 1000);
|
|
}
|
|
}
|
|
}
|