Beispiel #1
0
        public async Task <Unit> Handle(ApplicationInitializeCommand request, CancellationToken cancellationToken)
        {
            _logger.LogInformation("Initializing application");

            // Init vars
            var startUpArgs     = request.StartUpArgs;
            var requestUrl      = startUpArgs?.Skip(1).FirstOrDefault();
            var applicationMode = requestUrl.IsUrl() ? ApplicationMode.Select : ApplicationMode.Settings;

            _logger.LogInformation($"Determined startup arguments: {startUpArgs}");
            _logger.LogInformation($"Determined request url: {requestUrl}");
            _logger.LogInformation($"Determined application mode: {applicationMode}");

            // Init the application store
            _applicationState.StartUpArgs     = startUpArgs;
            _applicationState.ApplicationMode = applicationMode;

            // Restore the saved data
            _logger.LogInformation($"Restoring settings");
            _persistAndRestoreService.InitDataDirectory();
            _persistAndRestoreService.RestoreData();

            // Init browsers
            _logger.LogInformation($"Initializing browsers with their profiles");
            await _browserService.InitializeBrowsersAsync();

            // Init the browser store
            _browserState.RequestUrl             = requestUrl;
            _browserState.BrowserProfiles        = _browserService.GetBrowserProfilesAsync().Result;
            _browserState.SelectedBrowserProfile = _browserState.BrowserProfiles?.FirstOrDefault();

            // Try to auto select
            if (_applicationState.ApplicationMode == ApplicationMode.Select)
            {
                _logger.LogInformation($"Trying to determine the browser and profile to handle the requested url");

                var browserProfile = _browserState.BrowserProfiles
                                     .FirstOrDefault(bp => bp.Profile.SelectionRules.Any(rule => rule.IsMatch(requestUrl)));

                if (browserProfile != null)
                {
                    _logger.LogInformation($"Using '{browserProfile.Name}' to handle the requested url");
                    await _browserService.UseBrowserProfileAsync(
                        browserProfile,
                        _browserState.RequestUrl,
                        false);
                }
                else
                {
                    _logger.LogInformation($"No matching browser found to handle the requested url");
                }
            }

            // Init theme
            //var theme = _applicationService.GetTheme();
            //_applicationService.SetTheme(theme);

            return(Unit.Value);
        }
Beispiel #2
0
        public async Task <Unit> Handle(LoadBrowserStateBrowserProfilesCommand request, CancellationToken cancellationToken)
        {
            _browserState.BrowserProfiles = await _browserService.GetBrowserProfilesAsync();

            _browserState.SelectedBrowserProfile = _browserState.BrowserProfiles?.FirstOrDefault(x => x.Profile.Id == request.SelectedProfileId);

            return(Unit.Value);
        }