コード例 #1
0
        static void Main(string[] args)
        {
            var mp = new ManageProcess();

            foreach (var processName in mp.GetProcesses())
            {
                try
                {
                    Console.WriteLine(processName.Handle + " Handle");
                    Console.WriteLine(processName.Id + " Id");
                    Console.WriteLine(processName.ProcessName + " ProcessName");
                    Console.WriteLine(processName.ProcessorAffinity + " ProcessorAffinity");
                    Console.WriteLine(processName.StartInfo + " StartInfo");
                    Console.WriteLine(processName.StartTime + " StartTime");
                    for (int i = 0; i < processName.Threads.Count; i++)
                    {
                        Console.WriteLine(processName.Threads[i].StartTime + " threed!! " + i);
                    }
                    Console.WriteLine(processName.UserProcessorTime + " UserProcessorTime");
                    Console.WriteLine(processName.VirtualMemorySize64 + " VirtualMemorySize64");
                    Console.WriteLine(processName.WorkingSet64 + " WorkingSet64");
                    Console.WriteLine(processName.PriorityBoostEnabled + " PriorityBoostEnabled");
                    Console.WriteLine(processName.PriorityClass + " PriorityClass");
                }
                catch (Exception e)
                {
                    Console.WriteLine("exception!!!!!!!!!!!!!!!!!!" + e.Data + e.Message);
                }
            }
            Console.ReadKey();
        }
コード例 #2
0
 public AddWebAppDialog(ManageProcess process, Guid serverId = new Guid(), WebApp webAppForUpdate = null)
 {
     InitializeComponent();
     _config          = MainWindow.Config;
     _process         = process;
     _webAppForUpdate = webAppForUpdate;
     _serverId        = serverId;
     if (process == ManageProcess.Update)
     {
         txtWebAppName.Text = _webAppForUpdate.Name;
         txtFolderName.Text = _webAppForUpdate.FolderName;
     }
 }
コード例 #3
0
 public AddServerDialog(ManageProcess process, ServerProfile profileForUpdate = null)
 {
     InitializeComponent();
     _config  = MainWindow.Config;
     _process = process;
     this.profileForUpdate = profileForUpdate;
     if (process == ManageProcess.Update)
     {
         txtProfileName.Text = profileForUpdate.ProfileName;
         txtServerName1.Text = profileForUpdate.FirstServerName;
         txtServerName2.Text = profileForUpdate.SecondServerName;
     }
 }
コード例 #4
0
        /// <summary>
        /// Initializes a new instance of the MainViewModel class.
        /// </summary>
        public MainViewModel(IProcessManager processManager, DialogHandler dialogHandler)
        {
            IsEnable = false;
            Mouse.SetCursor(Cursors.Wait);
            _processManager = processManager;
            _dialogHandler  = dialogHandler;
            if (Application.Current != null)
            {
                Application.Current.DispatcherUnhandledException += DispatcherUnhandledException;
            }


            if (Properties.Settings.Default.UpdateSettings)
            {
                Properties.Settings.Default.Upgrade();
                Properties.Settings.Default.UpdateSettings = false;
                Properties.Settings.Default.Save();
            }

            Messenger.Default.Register <StatusMessage>(this, sm => { Messages += $"{sm.Timestamp.ToString("yy.MM.dd. HH:mm:ss")} -- {sm.Message}{Environment.NewLine}"; });
            Messenger.Default.Register <UpdateMessage>(this, message =>
            {
                switch (message.UpdateType)
                {
                case UpdateType.NewProcessCreated:
                    var currentProcess   = (Process)message.Parameter;
                    currentProcess.Start = currentProcess.Start.ToLocalTime();
                    currentProcess.End   = currentProcess.End.ToLocalTime();
                    DispatcherHelper.CheckBeginInvokeOnUI(() => ActiveProcessesList.Add(currentProcess));
                    break;

                case UpdateType.OpenNewTab:
                    var newTab = (HeaderedItemViewModel)message.Parameter;
                    Tabs.Add(newTab);
                    SelectedTab = newTab;
                    break;

                case UpdateType.DatasetRename:
                    var oldName     = message.Parameter.ToString();
                    var tabsToClose = Tabs.Where(t => t.Header.ToString() == oldName + " -Data").ToList();
                    foreach (var tab in tabsToClose)
                    {
                        Tabs.Remove(tab);
                    }
                    break;
                }
            });
            IsInSettingsMode          = false;
            ChangeSettingsModeCommand = new RelayCommand(() => IsInSettingsMode = !IsInSettingsMode);
            RefreshCommand            = new RelayCommand(async() =>
            {
                Log.Info(LogMessages.MainRefreshCommand);
                await((ViewModelLocator)App.Current.Resources["Locator"]).EndpointUpdate();
            });
            AboutCommand = new RelayCommand(async() =>
            {
                var version    = Assembly.GetExecutingAssembly().GetName().Version;
                var sdkVersion = Assembly.LoadFrom("Slamby.SDK.Net.dll").GetName().Version;
                var apiVersion = Version.Parse(SimpleIoc.Default.GetInstance <ResourcesMonitorViewModel>().EndPointStatus.Status.ApiVersion);
                await _dialogHandler.Show(new CommonDialog {
                    DataContext = new CommonDialogViewModel {
                        Header = "About", Content = $"Tau version: {version.Major}.{version.Minor}.{version.Build}{Environment.NewLine}SDK version: {sdkVersion.Major}.{sdkVersion.Minor}.{sdkVersion.Build}{Environment.NewLine}Api version: {apiVersion.Major}.{apiVersion.Minor}.{apiVersion.Build}", Buttons = ButtonsEnum.Ok
                    }
                }, "RootDialog");
            });
            HelpCommand = new RelayCommand(() =>
            {
                System.Diagnostics.Process.Start("http://developers.slamby.com");
            });

            SizeChangedCommand = new RelayCommand(() =>
            {
                if (LogWindowIsOpen)
                {
                    LogWindowIsOpen = false;
                    LogWindowIsOpen = true;
                }
            });
            DoubleClickCommand = new RelayCommand(() =>
            {
                object content = null;
                switch (SelectedMenuItem.Name.ToLower())
                {
                case "datasets":
                    content = new ManageDataSet();
                    break;

                case "services":
                    content = new ManageService();
                    break;

                case "processes":
                    content = new ManageProcess();
                    break;

                case "resourcesmonitor":
                    content = new ResourcesMonitor();
                    break;
                }
                Messenger.Default.Send(new UpdateMessage(UpdateType.OpenNewTab,
                                                         new HeaderedItemViewModel(SelectedMenuItem.Name, content, true)));
            });
            ExpandStatusCommand = new RelayCommand(() => Messenger.Default.Send(new UpdateMessage(UpdateType.OpenNewTab,
                                                                                                  new HeaderedItemViewModel("ResourcesMonitor", new ResourcesMonitor(), true))));
            RefreshProcessCommand = new RelayCommand <string>(async id =>
            {
                if (string.IsNullOrEmpty(id))
                {
                    return;
                }
                try
                {
                    var processResponse = await _processManager.GetProcessAsync(id);
                    if (ResponseValidator.Validate(processResponse))
                    {
                        var selectedItem = ActiveProcessesList.FirstOrDefault(p => p.Id == id);
                        if (selectedItem != null)
                        {
                            ActiveProcessesList[ActiveProcessesList.IndexOf(selectedItem)] = processResponse.ResponseObject;
                            ActiveProcessesList = new ObservableCollection <Process>(ActiveProcessesList);
                            if (processResponse.ResponseObject.Status != ProcessStatusEnum.InProgress)
                            {
                                Task.Run(async() =>
                                {
                                    await Task.Delay(20000);
                                    DispatcherHelper.CheckBeginInvokeOnUI(() =>
                                    {
                                        var itemToRemove = ActiveProcessesList.FirstOrDefault(p => p.Id == id);
                                        if (itemToRemove != null)
                                        {
                                            ActiveProcessesList.Remove(itemToRemove);
                                        }
                                    });
                                });
                            }
                        }
                    }
                }
                catch (Exception exception)
                {
                    Messenger.Default.Send(exception);
                }
            });

            CancelProcessCommand = new RelayCommand <Process>(async process =>
            {
                var processResponse = await _processManager.CancelProcessAsync(process.Id);
                if (ResponseValidator.Validate(processResponse))
                {
                    var selectedItem = ActiveProcessesList.FirstOrDefault(p => p.Id == process.Id);
                    if (selectedItem != null)
                    {
                        selectedItem.Status = ProcessStatusEnum.Cancelled;
                        ActiveProcessesList = new ObservableCollection <Process>(ActiveProcessesList);
                        Task.Run(async() =>
                        {
                            await Task.Delay(20000);
                            DispatcherHelper.CheckBeginInvokeOnUI(() =>
                            {
                                var itemToRemove = ActiveProcessesList.FirstOrDefault(p => p.Id == process.Id);
                                if (itemToRemove != null)
                                {
                                    ActiveProcessesList.Remove(itemToRemove);
                                }
                            });
                        });
                    }
                }
            });

            SelectionChangedCommand = new RelayCommand(() =>
            {
                Mouse.SetCursor(Cursors.Wait);
            });
            InitData();
            Tabs = new ObservableCollection <HeaderedItemViewModel> {
                new HeaderedItemViewModel("DataSet", new ManageDataSet(), true)
            };
            SelectedTab = Tabs.First();
        }