Exemplo n.º 1
0
        public void CanBeRussian_Test(string msg, bool res)
        {
            var chatMessage = new ChatMessage {
                Message = msg
            };

            Assert.AreEqual(res, chatMessage.CanBeRussian());
        }
Exemplo n.º 2
0
        public void OnChatMessage(ChatMessage chatMessage)
        {
            this.Do(() =>
            {
                if (Channels.Contains(chatMessage.Channel))
                {
                    if (Settings.UseBlocking)
                    {
                        if (chatMessage.HasStopWord(_chatsSettings.StopWords))
                        {
                            return;
                        }

                        if (_chatsSettings.BlackList.Any(s => s.Equals(chatMessage.Sender, StringComparison.InvariantCultureIgnoreCase)))
                        {
                            return;
                        }
                    }

                    if (Settings.RussianOnly)
                    {
                        if (!chatMessage.CanBeRussian())
                        {
                            return;
                        }
                    }

                    // костыль. непонятно, почему двоятся сообщения (в источнике всё норм)
                    var last = _messages.OrderBy(m => m.Time).LastOrDefault();
                    if (last != null && last.AreEquals(chatMessage))
                    {
                        return;
                    }

                    _messages.Add(chatMessage);

                    _itemsControl.ScrollIntoView(chatMessage);
                }
            });
        }