Exemplo n.º 1
0
        public async Task <IActionResult> Index(InstallModel installModel)
        {
            if (_installationProvider.IsPlatformInstalled)
            {
                return(new StatusCodeResult(StatusCodes.Status405MethodNotAllowed));
            }

            if (!ModelState.IsValid)
            {
                return(new StatusCodeResult(StatusCodes.Status400BadRequest));
            }

            var connectionString = _installationProvider.GetConnectionString(installModel);
            var settingFile      = Path.Combine(_hostingEnvironment.ContentRootPath, $"appsettings.{_hostingEnvironment.EnvironmentName}.json");

            try
            {
                await _installationProvider.InstallPlatform(installModel);

                //ApplicationManager.Instance.Restart();
                await _hubContext.Clients.All.SendAsync("OnUpdateInstallLog", "Restarting the website");

                await Task.Run(() =>
                {
                    _hostApplicationLifetime.StopApplication();
                });

                return(Ok());
            }
            catch (SqlException ex)
            {
                var errorMessage = $"Invalid connection to database, kindly check the connection string parameters: {ex.Message}";
                ModelState.AddModelError("", errorMessage);
                _logger.LogError(ex, errorMessage);
                return(new ObjectResult(errorMessage)
                {
                    StatusCode = StatusCodes.Status400BadRequest
                });
            }
            catch (Exception ex)
            {
                var errorMessage = ex.Message;
                ModelState.AddModelError("", errorMessage);
                _logger.LogError(ex, errorMessage);
                return(new ObjectResult(errorMessage)
                {
                    StatusCode = StatusCodes.Status400BadRequest
                });
            }
        }
        public IActionResult Index(InstallModel installModel)
        {
            if (_installationProvider.IsPlatformInstalled)
            {
                return(new StatusCodeResult(StatusCodes.Status405MethodNotAllowed));
            }

            if (ModelState.IsValid)
            {
                string connectionString = _installationProvider.GetConnectionString(installModel);
                string settingFile      = Path.Combine(_hostingEnvironment.ContentRootPath, $"appsettings.{_hostingEnvironment.EnvironmentName}.json");

                try
                {
                    _installationProvider.InstallPlatform(installModel);
                    ApplicationManager.Instance.Restart();
                    return(Ok());
                }
                catch (SqlException ex)
                {
                    string error = $"Invalid connection to database, kindly check the connection string parameters: {ex.Message}";
                    ModelState.AddModelError("", error);
                    return(new ObjectResult(error)
                    {
                        StatusCode = StatusCodes.Status400BadRequest
                    });
                }
                catch (Exception ex)
                {
                    string error = ex.Message;
                    ModelState.AddModelError("", error);
                    return(new ObjectResult(error)
                    {
                        StatusCode = StatusCodes.Status400BadRequest
                    });
                }
            }
            return(new StatusCodeResult(StatusCodes.Status400BadRequest));
        }