Esempio n. 1
0
        public virtual async Task <AppProcess> Kill(CommandOptions options, CancellationToken cancellationToken)
        {
            var        statuses = new List <AppStatus>();
            AppProcess process  = null;

            foreach (var name in ProcessNames)
            {
                process = new AppProcess(_platformService.GetKillProcess(name, options),
                                         AppTask.Kill,
                                         AppStatus.Running);

                try
                {
                    if (options.KillProcessesOnExit)
                    {
                        process.Start();
                        await process.WaitForExitAsync(cancellationToken);
                    }

                    statuses.Add(AppStatus.Success);
                }
                catch
                {
                    statuses.Add(AppStatus.Failure);
                }
            }

            if (statuses.Any(s => s == AppStatus.Failure))
            {
                process.Status = AppStatus.Failure;
            }
            else
            {
                process.Status = AppStatus.Success;
            }

            return(process);
        }