Esempio n. 1
0
        private UpdateResult UpdateInternal(UpdateRequest request)
        {
            var result = _updater.Update(Build, request.Branch, request.CommitHash);

            Status.LastBuildLog = result.Output;
            return(result);
        }
Esempio n. 2
0
        private async void OnTimerTick(object sender, EventArgs e)
        {
            if (!await ServerOffline())
            {
                return;
            }

            await _serverUpdater.Update();

            var fastestProfile = await _profileManager.GetFastestProfile();

            await _vpnManager.Connect(fastestProfile);
        }
Esempio n. 3
0
        private async void OnTimerTick(object sender, EventArgs e)
        {
            if (!await ServerOffline())
            {
                return;
            }

            _serverManager.MarkServerUnderMaintenance(_state.Server.ExitIp);
            await _serverUpdater.Update();

            var fastestProfile = await _profileManager.GetFastestProfile();

            await _vpnManager.Connect(fastestProfile);
        }
        public async Task <VpnError> ResolveError()
        {
            var oldUserInfo = _userStorage.User();

            if (oldUserInfo.Delinquent == 1)
            {
                return(VpnError.Unpaid);
            }

            if (oldUserInfo.Delinquent == 2)
            {
                return(VpnError.UsageLimitReached);
            }

            if (await GetSessionCount() >= oldUserInfo.MaxConnect)
            {
                return(VpnError.SessionLimitReached);
            }

            await UpdateUserInfo();

            var newUserInfo = _userStorage.User();

            if (oldUserInfo.VpnPassword != newUserInfo.VpnPassword)
            {
                return(VpnError.PasswordChanged);
            }

            if (newUserInfo.MaxTier < oldUserInfo.MaxTier)
            {
                return(VpnError.UserTierTooLowError);
            }

            await _serverUpdater.Update();

            var server = _serverManager.GetServer(new ServerById(_server.Id));

            if (server == null)
            {
                return(VpnError.ServerRemoved);
            }

            if (server.Status == 0)
            {
                return(VpnError.ServerOffline);
            }

            return(VpnError.Unknown);
        }
Esempio n. 5
0
        public async Task <VpnError> ResolveError()
        {
            User oldUserInfo = _userStorage.User();

            if (oldUserInfo.IsDelinquent())
            {
                return(VpnError.Unpaid);
            }

            int sessionCount = await GetSessionCount();

            if (sessionCount >= oldUserInfo.MaxConnect)
            {
                return(VpnError.SessionLimitReached);
            }

            await UpdateUserInfo();

            User newUserInfo = _userStorage.User();

            if (oldUserInfo.VpnPassword != newUserInfo.VpnPassword)
            {
                return(VpnError.PasswordChanged);
            }

            if (newUserInfo.MaxTier < oldUserInfo.MaxTier)
            {
                return(VpnError.UserTierTooLowError);
            }

            await _serverUpdater.Update();

            Server server = _serverManager.GetServer(new ServerById(_server.Id));

            if (server == null)
            {
                _serverManager.MarkServerUnderMaintenance(_server.ExitIp);
                return(VpnError.ServerRemoved);
            }

            if (server.Status == 0)
            {
                _serverManager.MarkServerUnderMaintenance(_server.ExitIp);
                return(VpnError.ServerOffline);
            }

            return(VpnError.Unknown);
        }
Esempio n. 6
0
        public async Task CheckIfCurrentServerIsOnlineAsync()
        {
            if (!_timer.IsEnabled || !await ServerOffline())
            {
                return;
            }

            _serverManager.MarkServerUnderMaintenance(_state.Server.ExitIp);
            await _serverUpdater.Update();

            _logger.Info($"Reconnecting due to server {_state.Server.Name} ({_state.Server.ExitIp}) being no longer available.");
            await _vpnManager.ReconnectAsync(new VpnReconnectionSettings
            {
                IsToReconnectIfDisconnected = true,
                IsToExcludeLastServer       = true,
                IsToShowReconnectionPopup   = true
            });
        }