Esempio n. 1
0
        public IActionResult ExecuteFile([FromBody] ExecuteFileDto executeDto, [FromQuery] bool waitForExit)
        {
            var processStartInfo = new ProcessStartInfo(executeDto.FileName, executeDto.Arguments)
            {
                WorkingDirectory = executeDto.WorkingDirectory ?? string.Empty,
                UseShellExecute  = executeDto.UseShellExecute,
                Verb             = executeDto.Verb,
                CreateNoWindow   = executeDto.CreateNoWindow
            };

            var process = Process.Start(processStartInfo);

            if (executeDto.UseShellExecute)
            {
                return(Ok());
            }

            if (process == null)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }

            if (waitForExit)
            {
                process.WaitForExit();
            }

            return(Ok());
        }
Esempio n. 2
0
        public void Initialize(FileViewModel fileViewModel, ITargetedRestClient restClient)
        {
            _fileViewModel = fileViewModel;
            _restClient    = restClient;
            ExecuteDto     = new ExecuteFileDto {
                FileName = fileViewModel.Source.Path
            };

            if (!ExecuteDto.FileName.EndsWith(".exe"))
            {
                ExecuteDto.UseShellExecute = true;
            }
        }
Esempio n. 3
0
 public static Task ExecuteFile(ExecuteFileDto dto, bool waitForExit, ITargetedRestClient restClient) =>
 CreateRequest(HttpVerb.Post, "file/execute", dto).AddQueryParam("waitForExit", waitForExit.ToString()).Execute(restClient);