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); }
// 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(); } }
public AisService(AisUriProvider aisFile) { _aisFile = aisFile; }