예제 #1
0
 public Syncer(IFileDownloader fileDownloader, IFileService fileService)
 {
     _fileDownloader = fileDownloader;
     _fileService    = fileService;
     _uriProvider    = new AisUriProvider();
     _listFile       = Path.Combine(fileService.AppDir, _listFileName);
     _timer.Start(async() => await Sync(), _interval);
 }
예제 #2
0
        // Delete all other files, split up downloads into new threads and start them
        public static void sync(CustomProgressBar progbar, GridMaker displayController, MainDisplay me)
        {
            if (STOP || isSyncing)
            {
                return;
            }

            isSyncing = true;
            try
            {
                DirectoryInfo di = new DirectoryInfo(Properties.Settings.Default.runpath);
                foreach (FileInfo file in di.GetFiles())
                {
                    file.Delete();
                }
                foreach (DirectoryInfo dir in di.GetDirectories())
                {
                    dir.Delete(true);
                }
            }
            catch (IOException)
            {
                Thread.CurrentThread.Abort();
            }
            AisUriProvider api             = new AisUriProvider();
            List <Uri>     filesFromServer = api.Get().ToList();

            if (progbar.InvokeRequired)
            {
                progbar.BeginInvoke((MethodInvoker) delegate() { progbar.Maximum = filesFromServer.Count(); });
            }
            else
            {
                progbar.Maximum = filesFromServer.Count();
            }
            for (int i = 0; i < filesFromServer.Count; i = i + (filesFromServer.Count / Properties.Settings.Default.n))
            {
                int lowerBound = i;
                int upperBound = i + (filesFromServer.Count / Properties.Settings.Default.n);


                Thread t3 = new Thread(() => downloadPattern(filesFromServer, lowerBound, upperBound, progbar, displayController, me));
                t3.Start();
            }
        }
예제 #3
0
 public AisService(AisUriProvider aisFile)
 {
     _aisFile = aisFile;
 }