private void __evt_Edit(RecentChange change) { if (this.On_Change != null) { // send a signal // everywhere this.On_Change(this, new EditEventArgs(change)); } }
private void processOutput(string data) { // put the text into XML document XmlDocument document = new XmlDocument(); this.lastPing = DateTime.Now; document.LoadXml(data); switch (document.DocumentElement.Name) { case "ping": this.send("pong"); break; case "fatal": this.__evt_Error(new ErrorEventArgs(true, document.DocumentElement.InnerText)); break; case "error": this.__evt_Error(new ErrorEventArgs(false, document.DocumentElement.InnerText)); break; case "ok": this.__evt_ok(document.DocumentElement.InnerText); break; case "edit": { RecentChange rc = new RecentChange(); foreach (XmlAttribute item in document.DocumentElement.Attributes) { switch (item.Name) { case "wiki": rc.Wiki = item.Value; break; case "server_name": rc.ServerName = item.Value; break; case "summary": rc.Summary = item.Value; break; case "revid": rc.RevID = TryParseIS(item.Value); break; case "oldid": rc.OldID = TryParseIS(item.Value); break; case "title": rc.Title = item.Value; break; case "namespace": rc.Namespace = TryParseIS(item.Value); break; case "user": rc.User = item.Value; break; case "bot": rc.Bot = bool.Parse(item.Value); break; case "patrolled": rc.Patrolled = bool.Parse(item.Value); break; case "minor": rc.Minor = bool.Parse(item.Value); break; case "type": { switch (item.Value.ToLower()) { case "new": rc.Type = RecentChange.ChangeType.New; break; case "log": rc.Type = RecentChange.ChangeType.Log; break; case "edit": rc.Type = RecentChange.ChangeType.Edit; break; } } break; case "length_new": rc.LengthNew = TryParseIS(item.Value); break; case "length_old": rc.LengthOld = TryParseIS(item.Value); break; case "timestamp": rc.Timestamp = Configuration.UnixTimeStampToDateTime(double.Parse(item.Value)); break; } } rc.OriginalXml = data; this.__evt_Edit(rc); } break; } }
public EditEventArgs(RecentChange change) { this.Change = change; }