public static void AddToNotificationList(string applicationName, string applicationPath, CustomNotification.ActionType actionType, DateTime time, bool notActivated) { string title = actionType == ActionType.BlockAllow ? "First connection: " : actionType == ActionType.UnblockAllow ? "Blocked connection: " : actionType == ActionType.SuspendWhitelist ? "High CPU load: " : actionType == ActionType.TerminateWhitelist ? "Suspended: " : ""; string content = actionType == ActionType.BlockAllow ? "Application at the following path initiated a network connection:\n" : actionType == ActionType.UnblockAllow ? "Application at the following path was blocked from connecting to the network:\n" : actionType == ActionType.SuspendWhitelist ? "Application at the following path is using a high percentage of processor time:\n" : actionType == ActionType.TerminateWhitelist ? "Application at the following path was suspended for using a high percentage of processor time:\n" : null; string buttonLabel = actionType == ActionType.BlockAllow ? "Block" : actionType == ActionType.UnblockAllow ? "Unblock" : actionType == ActionType.SuspendWhitelist ? "Whitelist" : actionType == ActionType.TerminateWhitelist ? "Whitelist" : null; SolidColorBrush iconColor = actionType == ActionType.BlockAllow ? new SolidColorBrush(Color.FromArgb(255, 0, 182, 0)) : actionType == ActionType.UnblockAllow ? new SolidColorBrush(Color.FromArgb(255, 182, 0, 0)) : actionType == ActionType.SuspendWhitelist ? new SolidColorBrush(Color.FromArgb(255, 0, 150, 182)) : actionType == ActionType.TerminateWhitelist ? new SolidColorBrush(Color.FromArgb(255, 204, 80, 0)) : new SolidColorBrush(Color.FromArgb(255, 255, 255, 255)); iconColor.Freeze(); PackIconFontAwesomeKind iconKind = actionType == ActionType.BlockAllow ? PackIconFontAwesomeKind.InfoCircleSolid : actionType == ActionType.UnblockAllow ? PackIconFontAwesomeKind.TimesCircleSolid : actionType == ActionType.SuspendWhitelist ? PackIconFontAwesomeKind.InfoCircleSolid : actionType == ActionType.TerminateWhitelist ? PackIconFontAwesomeKind.MoonSolid : PackIconFontAwesomeKind.CircleSolid; var n = new NotificationItem { ApplicationName = applicationName, ApplicationPath = applicationPath, Title = title + applicationName, Content = content + applicationPath, IconKind = iconKind, IconColor = iconColor, ButtonLabel = buttonLabel, Type = (int)actionType, NotActivated = notActivated, Time = time }; NotificationList.Add(n); }
public static void ShowNotification(int PID, string applicationName, string applicationPath, CustomNotification.ActionType actionType) { DateTime time = DateTime.Now; Application.Current.Dispatcher.BeginInvoke( new Action(() => _notifier.ShowNotification(PID, applicationName, applicationPath, actionType, time))); AddToNotificationList(applicationName, applicationPath, actionType, time); Task.Run(() => { using (var db = new ArgonDB()) db.InsertAsync(new Notification { Time = time.Ticks, ApplicationName = applicationName, ApplicationPath = applicationPath, Type = (int)actionType, NotActivated = 1 }); }); try { Application.Current.Dispatcher.BeginInvoke( new Action(() => { ((MainWindow)Application.Current.MainWindow).Notifications.UpdateViewSource(); })); } catch { } }
public static void AddToNotificationList(string applicationName, string applicationPath, CustomNotification.ActionType actionType, DateTime time) { AddToNotificationList(applicationName, applicationPath, actionType, time, true); }
public static void ShowNotification(this Notifier notifier, int PID, string applicationName, string applicationPath, CustomNotification.ActionType actionType, DateTime time) { notifier.Notify <CustomNotification>(() => new CustomNotification(PID, applicationName, applicationPath, actionType, time)); }