/// <summary> /// Executes the Moderator message. /// </summary> /// <param name="message">The message.</param> private void Execute(ModeratorMessage message) { if (message.ErrorMessage != null) { Log(LogLevel.Warning, message.ErrorMessage); return; } var server = Repository.Server.GetCurrentServer(); var entities = Repository.Client.GetModeration(ModerationType.Added, message.TimeSpan.FromDate, message.TimeSpan.ToDate); var context = new MessageContext { ServerId = server.Id, ServerName = server.Name, ServerPort = server.Port }; QueryRunner.SendTextMessage(Repository.Settings.Control.Moderator.Target, Repository.Settings.Control.Moderator.TargetId > 0 ? Repository.Settings.Control.Moderator.TargetId : message.SenderClientId, Repository.Settings.Control.Moderator.TextMessage.ToMessage(context)); var groupedEntities = entities.GroupBy(m => m.ModeratorDatabaseId).OrderByDescending(m => m.Count()).Take(Repository.Settings.Control.Moderator.Limit).ToList(); for (int index = 0; index < groupedEntities.Count; index++) { var entity = groupedEntities[index]; var moderatorEntity = Repository.Client.GetClientDataBaseInfo((uint)entity.Key); var messageContext = new MessageContext { Index = index + 1, ServerName = server.Name, ServerId = server.Id, ServerPort = server.Port, ClientDatabaseId = moderatorEntity == null ? default(uint) : moderatorEntity.DatabaseId, ClientNickname = moderatorEntity == null ? default(string) : moderatorEntity.NickName, ModeratorVerified = entity.Count() }; QueryRunner.SendTextMessage(Repository.Settings.Control.Moderator.Target, Repository.Settings.Control.Moderator.TargetId > 0 ? Repository.Settings.Control.Moderator.TargetId : message.SenderClientId, Repository.Settings.Control.Moderator.MessagePerModerator.ToMessage(messageContext)); } var clientEntry = Repository.Client.GetClientInfo(message.SenderClientId); Log(Repository.Settings.Control.Moderator, string.Format("Client '{1}'(id:{2}) used {0}.", Repository.Settings.Control.Moderator.Command, clientEntry.Nickname, clientEntry.DatabaseId)); }
/// <summary> /// Executes the Moderator message. /// </summary> /// <param name="message">The message.</param> private void Execute(ModeratorMessage message) { if (message.ErrorMessage != null) { Log(LogLevel.Warning, message.ErrorMessage); return; } var server = Repository.Server.GetCurrentServer(); var entities = Repository.Client.GetModeration(ModerationType.Added, message.TimeSpan.FromDate, message.TimeSpan.ToDate); var context = new MessageContext { ServerId = server.Id, ServerName = server.Name, ServerPort = server.Port }; QueryRunner.SendTextMessage(Repository.Settings.Control.Moderator.Target, Repository.Settings.Control.Moderator.TargetId > 0 ? Repository.Settings.Control.Moderator.TargetId : message.SenderClientId, Repository.Settings.Control.Moderator.TextMessage.ToMessage(context)); var groupedEntities = entities.GroupBy(m => m.Moderator).OrderByDescending(m => m.Count()).Take(Repository.Settings.Control.Moderator.Limit).ToList(); for (int index = 0; index < groupedEntities.Count; index++) { var entity = groupedEntities[index]; var moderatorEntity = Repository.Client.GetClientDataBaseInfo((uint)entity.Key); var messageContext = new MessageContext { Index = index + 1, ServerName = server.Name, ServerId = server.Id, ServerPort = server.Port, ClientDatabaseId = moderatorEntity == null ? default(uint) : moderatorEntity.DatabaseId, ClientNickname = moderatorEntity == null ? default(string) : moderatorEntity.NickName, ModeratorVerified = entity.Count() }; QueryRunner.SendTextMessage(Repository.Settings.Control.Moderator.Target, Repository.Settings.Control.Moderator.TargetId > 0 ? Repository.Settings.Control.Moderator.TargetId : message.SenderClientId, Repository.Settings.Control.Moderator.MessagePerModerator.ToMessage(messageContext)); } var clientEntry = Repository.Client.GetClientInfo(message.SenderClientId); Log(Repository.Settings.Control.Moderator, string.Format("Client '{1}'(id:{2}) used {0}.", Repository.Settings.Control.Moderator.Command, clientEntry.Nickname, clientEntry.DatabaseId)); }