Ejemplo n.º 1
0
        public async ValueTask <UpdateInfo> CheckAsync()
        {
            if (_cachedInfo != null)
            {
                return(_cachedInfo);
            }

            try
            {
                CheckStatusChanged?.Invoke(CheckUpdateStatus.Checking);
                var json = await _client.GetByteArrayAsync(CHECK_UPDATE_URL);

                var info = JsonSerializer.Deserialize <UpdateInfo>(json);

                if (HasNewVersion(info.Version))
                {
                    CheckStatusChanged?.Invoke(CheckUpdateStatus.UpdateAvailable);
                    _cachedInfo = info;
                    return(info);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.ToString());
                CheckStatusChanged?.Invoke(CheckUpdateStatus.CheckFailed);
                return(null);
            }

            CheckStatusChanged?.Invoke(CheckUpdateStatus.UpToDate);
            return(null);
        }
Ejemplo n.º 2
0
        public async ValueTask <UpdateInfo> CheckAsync()
        {
            if (_cachedInfo != null)
            {
                return(_cachedInfo);
            }

            _logService.Info(nameof(UpdateService), "Checking launcher update");

            try
            {
                CheckStatusChanged?.Invoke(CheckUpdateStatus.Checking);
                byte[] json = await _client.GetByteArrayAsync(CHECK_UPDATE_URL);

                var info = JsonSerializer.Deserialize <UpdateInfo>(json);

                if (HasNewVersion(info.Version))
                {
                    _logService.Info(nameof(UpdateService), $"New update available. Version: {info.Version}");

                    CheckStatusChanged?.Invoke(CheckUpdateStatus.UpdateAvailable);
                    _cachedInfo = info;
                    return(info);
                }
            }
            catch (Exception ex)
            {
                _logService.Error(nameof(UpdateService), $"Failed to check update.\n{ex.Message}");

                CheckStatusChanged?.Invoke(CheckUpdateStatus.CheckFailed);
                return(null);
            }

            _logService.Info(nameof(UpdateService), "Launcher is up to date");

            CheckStatusChanged?.Invoke(CheckUpdateStatus.UpToDate);
            return(null);
        }
Ejemplo n.º 3
0
 public void Handle(CheckStatusChanged message)
 {
     CheckStatus = message.Status;
 }