public void NotifyActivity(Guid guid, Program.LogEntry entry, ProgramID progID, List <String> services = null, bool update = false) { Engine.FwEventArgs args = new Engine.FwEventArgs() { guid = guid, entry = entry, progID = progID, services = services, update = update }; SendPushNotification("ActivityNotification", args); }
/*private bool TestEntry(ProgramSet prog, Program.LogEntry entry) * { * switch (mConTypes) * { * case ConTypes.Allowed: if (entry.FwEvent.Action != FirewallRule.Actions.Allow) return false; break; * case ConTypes.Blocked: if (entry.FwEvent.Action != FirewallRule.Actions.Block) return false; break; * } * * if (chkNoLocal.IsChecked == true && (NetFunc.IsLocalHost(entry.FwEvent.RemoteAddress) || NetFunc.IsMultiCast(entry.FwEvent.RemoteAddress))) * return false; * * if (chkNoLAN.IsChecked == true && FirewallRule.MatchAddress(entry.FwEvent.RemoteAddress, "LocalSubnet")) * return false; * * if (FirewallPage.DoFilter(mConFilter, prog.config.Name, new List<ProgramID>() { entry.ProgID })) * return false; * * return true; * }*/ public void AddEntry(ProgramSet prog, Program program, Engine.FwEventArgs args) { //if (!TestEntry(prog, args.entry)) // return; if (args.update) { foreach (LogItem Item in LogList) { if (Item.entry.guid.Equals(args.entry.guid)) { Item.Update(args.entry); return; } } } LogList.Insert(0, new LogItem(args.entry, program != null ? program.Description : null)); while (LogList.Count > logLimit) { LogList.RemoveAt(logLimit); } }
public void Add(ProgramSet progs, Engine.FwEventArgs args) { ProgramID id = args.entry.ProgID; Program prog = null; if (!progs.Programs.TryGetValue(id, out prog)) { return; } Tuple <Program, List <Engine.FwEventArgs> > list; if (!mEvents.TryGetValue(id, out list)) { if (args.update) { return; } list = new Tuple <Program, List <Engine.FwEventArgs> >(prog, new List <Engine.FwEventArgs>()); mEvents.Add(id, list); mEventList.Add(id); } if (args.update) { foreach (var oldEntry in list.Item2) { if (oldEntry.entry.guid.Equals(args.entry.guid)) { oldEntry.entry.Update(args.entry); break; } } } else { list.Item2.Add(args); } int oldIndex = curIndex; if (curIndex < 0) { curIndex = 0; } else if (curIndex >= mEventList.Count) { curIndex = mEventList.Count - 1; } UpdateIndex(); // don't update if the event is for a different entry int index = mEventList.FindIndex((x) => { return(id.CompareTo(x) == 0); }); if (curIndex != index) { return; } LoadCurrent(oldIndex == curIndex); }