public bool UpdateClient(FileObjectsCollection files) { var handler = new WebClient(); bool result = true; try { foreach (var item in files) { if (!File.Exists(item.FileName)) { CurrentFile = item.NiceFileName; if (item.NiceFileName.Length > 35) { CurrentFile = CurrentFile.Remove(35) + "..."; } if (!Directory.Exists(item.FileName.Replace(item.FileName.Split('\\').Last(), ""))) { Directory.CreateDirectory(item.FileName.Replace(item.FileName.Split('\\').Last(), "")); } handler.DownloadProgressChanged += OnProgressChanged_Remote; handler.DownloadFileCompleted += OnDownloadComplete_Remote; Sw.Start(); handler.DownloadFileTaskAsync(item.RemotePath, item.FileName).Wait(); if (LastResult != true) { result = false; break; } Task.Delay(1500); } } } catch (Exception ex) { ex.ToLog(LogLevel.Error); Error = ex.Message; result = false; } return(result); }
public bool Check(FileObjectsCollection files) { string current = ""; int currentFileChecked = 0; bool result = true; try { foreach (var item in files) { current = item.NiceFileName; if (item.NiceFileName.Length > 35) { current = current.Remove(35) + "..."; } OnProcess(current, ((currentFileChecked * 100) / files.Count)); if (!File.Exists(item.FileName)) { result = false; } else { if (!Hashinger.CompareHashRaw(item.FileName, item.Hash)) { result = false; File.Delete(item.FileName); } } currentFileChecked++; } } catch (Exception ex) { ex.ToLog(LogLevel.Error); result = false; } return(result); }
public FileMgr() { Collection = new FileObjectsCollection(); Checker = new FileChecker(); Downloader = new FileDownloader(); }
public async Task <bool> UpdateClientAsync(FileObjectsCollection files) { return(await Task.Run(() => UpdateClient(files))); }
public async Task <bool> CheckAsync(FileObjectsCollection files) { return(await Task.Run(() => Check(files))); }