public void SetAmountLabelsToZero()
 {
     MusicFileRepo.DeleteAll().Wait();
     SetDiscoveredFilesLabel("0");
     SetIssuesLabel("0");
     SetUploadedLabel("0");
     InitialFilesCount = 0;
 }
Beispiel #2
0
        public void StartMainProcess(bool restarting = false)
        {
            IdleProcessor.Paused = true;

            // Only perform at start up
            if (!DatabaseIntegrityCheckDone)
            {
                SetStatusMessage("Checking database integrity", "Checking database integrity");
                Database.Maintenance.CheckAndCopyDatabaseFile();
                DatabaseIntegrityCheckDone = true;
            }

            Logger.LogInfo("StartMainProcess", "Main process thread starting");

            _scanAndUploadThread = new Thread((ThreadStart) delegate
            {
                if (restarting)
                {
                    if (WatchFolders.Count == 0)
                    {
                        MusicFileRepo.DeleteAll().Wait();
                        SetDiscoveredFilesLabel("0");
                        SetIssuesLabel("0");
                        SetUploadedLabel("0");
                    }
                }

                MainProcess(restarting);
                int retryIssuesCount = 0;
                while (MusicFileRepo.CountIssues().Result > 0)
                {
                    ThreadHelper.SafeSleep(10000);
                    retryIssuesCount++;
                    if (retryIssuesCount < Global.YTMusicIssuesMainProcessRetry)
                    {
                        MainProcess();
                    }
                    else
                    {
                        break;
                    }
                }
            })
            {
                IsBackground = true
            };
            _scanAndUploadThread.Start();
        }