Esempio n. 1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MessageEventArgs"/> class.
 /// </summary>
 /// <param name="message">The message.</param>
 public MessageEventArgs(MessageInfo message)
 {
     Message = message;
 }
Esempio n. 2
0
        /// <summary>
        /// Fills the box.
        /// </summary>
        private void FillBox(GameController controller)
        {
            if (reading)
            {
                return;
            }
            reading = true;
            try
            {
                log.Debug("Читаем почту.");
                controller.GoTo(controller.UrlPost);

                var table = controller.Browser.Table(Find.ByClass("default post_table"));

                foreach (TableRow row in table.TableRows)
                {
                    var cell2 = (row.TableCells[2]);
                    if (cell2.Links.Count <= 0)
                    {
                        continue;
                    }

                    var message = new MessageInfo();
                    message.Date = DateTime.Parse(row.TableCells[1].Text);
                    var link = cell2.Links[0];
                    if (link.Text.StartsWith("Вы атаковали"))
                    {
                        message.EventType = EventType.Fight;
                    }
                    if (link.Text.Contains("атаковал вас"))
                    {
                        message.EventType = EventType.Attack;
                    }
                    message.IsWin    = link.ClassName == "text_main_1 fight_win";
                    message.Title    = link.Text;
                    message.Severity = message.IsWin ? EventSeverity.Normal : EventSeverity.High;

                    if (messages.Where(e => e.Equals(message)).Count() > 0)
                    {
                        return;
                    }
                    messages.Add(message);
                    OnMessageComming(new MessageEventArgs(message));
                }
            }
            catch (ThreadAbortException)
            {
                Stop();
            }
            catch (Exception ex)
            {
                log.Error("Ошибка чтения почты.", ex);
                errorCount++;
                if (AppCore.BotvaSettings.AllowDebugger)
                {
                    Debugger.Break();
                }

                if (errorCount >= AppCore.BotvaSettings.MaxDangerousErrors)
                {
                    Stop();
                    AppCore.LogSystem.Error("Модуль чтения почты отключен.", "Произошло слишком много ошибок и модуль был отключен.", ex);
                }
            }
            finally
            {
                reading = false;
            }
        }