protected override async void OnStartup(object sender, StartupEventArgs e) { base.OnStartup(sender, e); UnhandledExceptionLogging logging = Resolve <UnhandledExceptionLogging>(); logging.CaptureUnhandledExceptions(); logging.CaptureTaskExceptions(); Resolve <ServicePointConfiguration>().Apply(); AppConfig appConfig = Resolve <AppConfig>(); Resolve <ILogger>().Info($"= Booting ProtonVPN version: {appConfig.AppVersion} os: {Environment.OSVersion.VersionString} {appConfig.OsBits} bit ="); Resolve <LogCleaner>().Clean(appConfig.AppLogFolder, 30); LoadServersFromCache(); RegisterMigrations(Resolve <AppSettingsStorage>(), Resolve <IEnumerable <IAppSettingsMigration> >()); RegisterMigrations(Resolve <UserSettings>(), Resolve <IEnumerable <IUserSettingsMigration> >()); Resolve <SyncedAutoStartup>().Sync(); IncreaseAppStartCount(); RegisterEvents(); Resolve <Language>().Initialize(_args); await ShowInitialWindow(); if (Resolve <IUserStorage>().User().Empty() || !await IsUserValid() || await SessionExpired()) { ShowLoginForm(); return; } Resolve <UserAuth>().InvokeAutoLoginEvent(); }
public WireGuardConnection( ILogger logger, ProtonVPN.Common.Configuration.Config config, IService wireGuardService, TrafficManager trafficManager, StatusManager statusManager, IX25519KeyGenerator x25519KeyGenerator) { _logger = logger; _config = config; _wireGuardService = wireGuardService; _trafficManager = trafficManager; _statusManager = statusManager; _x25519KeyGenerator = x25519KeyGenerator; _trafficManager.TrafficSent += OnTrafficSent; _statusManager.StateChanged += OnStateChanged; _connectAction = new SingleAction(ConnectAction); _connectAction.Completed += OnConnectActionCompleted; _disconnectAction = new SingleAction(DisconnectAction); _disconnectAction.Completed += OnDisconnectActionCompleted; }
private async Task StartService(IConcurrentService service) { Result result = await service.StartAsync(); if (result.Failure) { ReportException(result.Exception); AppConfig config = Resolve <AppConfig>(); string filename = config.ErrorMessageExePath; string error = GetServiceErrorMessage(service.Name, result.Exception); try { Resolve <IOsProcesses>().Process(filename, error).Start(); } catch (Exception e) { string serviceName = Path.GetFileNameWithoutExtension(filename); Resolve <ILogger>().Error($"Failed to start {serviceName} process: {e.CombinedMessage()}"); ReportException(e); } } }
public WireGuardService(ILogger logger, ProtonVPN.Common.Configuration.Config config, IService origin) { _logger = logger; _config = config; _origin = origin; }