Пример #1
0
        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);
        }
Пример #2
0
        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 { }
        }
Пример #3
0
 public static void AddToNotificationList(string applicationName, string applicationPath, CustomNotification.ActionType actionType, DateTime time)
 {
     AddToNotificationList(applicationName, applicationPath, actionType, time, true);
 }
Пример #4
0
 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));
 }