/// <summary> /// Initializes a new instance of the <see cref="MessageEventArgs"/> class. /// </summary> /// <param name="message">The message.</param> public MessageEventArgs(MessageInfo message) { Message = message; }
/// <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; } }