Exemple #1
0
        private void InitDebouncedDownloadLogic()
        {
            latestRawSheetData = null;
            // Create a debounced func that only downloads new data max every 10 seconds and
            // trigger this method only if inet available:
            Func <object, Task> debouncedFunc = DowloadOnlineData;

            debouncedFunc = debouncedFunc.AsThrottledDebounce(delayInMsBetweenCheck);
            dowloadOnlineDataDebounced = async() => {
                if (latestRawSheetData.IsNullOrEmpty())
                {
                    await InternetStateManager.Instance(this).HasInetAsync;
                }
                if (InternetStateManager.Instance(this).HasInet)
                {
                    try {
                        await debouncedFunc(null);

                        ThrowIfSheetDataMissing();
                        return(true);
                    } catch (TaskCanceledException) { } // If debouncing decided the task does not need to run
                }
                else     // No inet, so check if cached data is present:
                {
                    var fallbackContent = await fallbackStore.GetAllKeys();

                    if (!fallbackContent.IsNullOrEmpty())
                    {
                        return(false);
                    }
                }
                ThrowIfSheetDataMissing();
                return(false);
            };
        }
Exemple #2
0
 public async Task TestInternetStateListener20Times()
 {
     Assert.False(InternetStateManager.Instance(this).HasInet);
     for (int i = 0; i < 20; i++)
     {
         await TestInternetStateListenerOnce();
     }
 }
Exemple #3
0
 public async Task TestInternetStateListenerOnce()
 {
     InternetStateManager.AddListener(this);
     Assert.True(await RestFactory.instance.HasInternet());
     Assert.True(await InternetStateManager.Instance(this).HasInetAsync);
     Assert.True(InternetStateManager.Instance(this).HasInet);
     Assert.True(hasInet);
     InternetStateManager.RemoveListener(this);
 }
Exemple #4
0
        public async Task TestInternetStateListener()
        {
            InternetStateManager.AddListener(this);
            Assert.False(InternetStateManager.Instance(this).HasInet);
            Assert.False(hasInet);
            await InternetStateManager.Instance(this).HasInetAsync;

            Assert.True(InternetStateManager.Instance(this).HasInet);
            Assert.True(hasInet);
        }
Exemple #5
0
        public static async Task CheckForLatestVersion()
        {
            do
            {
                await Task.Delay(3000);                                          // Wait at least 3sec before starting
            } while (!(await InternetStateManager.Instance(null).HasInetAsync)); // Wait until internet awailable

            var installedPackages = await GetInstalledPackagesFromPackageManager();

            await CheckForUpdates(installedPackages, "https://raw.githubusercontent.com/cs-util-com/cscore/master/CsCore/PlainNetClassLib/src/Plugins/package.json");
            await CheckForUpdates(installedPackages, "https://raw.githubusercontent.com/cs-util-com/cscore/master/CsCore/CsCoreUnity/Plugins/package.json");
        }