public async Task TerminateProcesAsync(int processId)
 {
     var process  = ProcessesModel.FirstOrDefault(p => p.ProcessId == processId);
     var commands = new List <UICommand>
     {
         new UICommand("Yes, kill it", async(cmd) =>
         {
             try
             {
                 await _restService.DeleteAsync(new Uri(String.Format("api/taskmanager/process?pid={0}", processId), UriKind.Relative));
                 ProcessesModel.Remove(process);
             }
             catch (Exception ex)
             {
                 await _userInterfaceService.ShowFeedbackAsync(ex);
             }
         }),
         new UICommand("No, be nice")
     };
     await _userInterfaceService.ShowDialogAsync("Terminate Process Confirmation",
                                                 String.Format("Are you sure you want to terminate the '{0}' process?", process.ImageName), commands, 1);
 }
        private async void Timer_Tick(object sender, object e)
        {
            try
            {
                _timer.Stop();
                _timer.Interval = TimeSpan.FromSeconds(1);
                var processModel = await _restService.GetAsync <ProcessesModel>(new Uri("api/resourcemanager/processes", UriKind.Relative));

                if (ProcessesModel == null || ProcessesModel.Count <= 1)
                {
                    ProcessesModel = new ObservableCollection <ProcessViewModel>();
                    foreach (var process in processModel.Processes)
                    {
                        ProcessesModel.Add(ProcessViewModel.FromProcessModel(this, process));
                    }
                }
                else
                {
                    // Update displayed processes.  Ignore any processes that were starter or terminated until the next page transition.
                    foreach (var process in processModel.Processes)
                    {
                        var displayProcess = ProcessesModel.Where(p => p.ProcessId == process.ProcessId).FirstOrDefault();
                        if (displayProcess == null)
                        {
                            continue;
                        }
                        displayProcess.Update(process);
                    }   // for each process
                }
                _timer.Start();
                await _userInterfaceService.HideBusyIndicatorAsync();
            }
            catch (Exception ex)
            {
                await _userInterfaceService.ShowFeedbackAsync(ex);
            }
        }
 public void ScanAndKillBlockedProcesses(ProcessesModel ListOfBlockedProcesses)
 {
     KillBlockedProcesses(GetListOfBlockedProcessesThatAreRunning(ListOfBlockedProcesses.ProcessesToBeBlocked));
 }
示例#4
0
 public MainWindow()
 {
     InitializeComponent();
     Logging.LogToLoggingTextBoxInUI("Application started");
     ListOfBlockedProcesses = new JsonHandler().LoadBlockList();
 }