private void WorkerFile_DoWork(object sender, DoWorkEventArgs e) { this.number = 0; this.fileMissed = 0; this.fileUnknown = 0; this.fileIncorrect = 0; Library lib = new Library(); DataFile df = new DataFile(); this.errorFiles = new List <ErrorFile>(); this.fileStream = new List <FileStream>(); BackgroundWorker worker = sender as BackgroundWorker; //provjera nepoznatih fajlova if (df.CheckUnknown(Launcher.Name, lib.Name)) { df.ReadUnknown(Launcher.Name, lib.Name); foreach (string file in df.UnknownFiles) { //ako fajl u medjuvremenu nestane if (!File.Exists(file)) { continue; } this.fileUnknown++; //brojac nepoznatih fajlova long length = new System.IO.FileInfo(file).Length; this.errorFiles.Add(new ErrorFile(++number, file, length, "Nepoznat")); } } //provjera zahtjeva za izlaz if (worker.CancellationPending) { e.Cancel = true; return; } //provjera nedostajucih fajlova if (df.CheckMissed(Launcher.Name)) { df.ReadMissed(Launcher.Name); foreach (int id in df.MissedFiles) { this.id.Add(id); //fajl koji nedotaje takodje se dodaje na listu za skidanje (download); this.fileMissed++; //brojac nedostajucih fajlova this.errorFiles.Add(new ErrorFile(++number, Launcher.Name[id], Launcher.Size[id], "Nedostaje")); } } //provjera zahtjeva za izlaz if (worker.CancellationPending) { e.Cancel = true; return; } //provjera za sve fajlove; for (int i = 0; i < Launcher.Name.Length; i++) { workerFile.ReportProgress(i); //provjera zahtjeva za izlaz if (worker.CancellationPending) { e.Cancel = true; return; } if (File.Exists(Launcher.Name[i]) && Launcher.Valid[i]) { if (HashFile.GetMD5(Launcher.Name[i]) != Launcher.Hash[i].ToUpper()) { this.id.Add(i); this.fileIncorrect++; this.errorFiles.Add(new ErrorFile(++number, Launcher.Name[i], Launcher.Size[i], "Neispravan")); } /*this.fileStream.Clear(); * for (int j = 0; j <= i; j++) * { * if (this.id.Count > 0) * { * bool skip = false; * foreach (int index in this.id) * { * if (j == index) * { * skip = true; * break; * } * } * if (skip) continue; * } * * this.fileStream.Add(new FileStream(Launcher.Name[j], FileMode.Open, FileAccess.Read, FileShare.Read)); * }*/ } } }
private void workerFile_DoWork(object sender, DoWorkEventArgs e) { this.number = 0; this.fileMissed = 0; this.fileUnknown = 0; this.fileIncorrect = 0; files = new List <CheckFile>(); e.Result = ErrorResult.None; // Get the BackgroundWorker that raised this event. BackgroundWorker worker = sender as BackgroundWorker; Library lib = new Library(); DataFile df = new DataFile(); //provjera nedostajucih fajlova if (df.CheckMissed(Launcher.Name)) { errorResult = true; //e.Result = ErrorResult.Missed; df.ReadMissed(Launcher.Name); foreach (int id in df.MissedFiles) { fileMissed++; files.Add(new CheckFile(++number, Launcher.Name[id], Launcher.Size[id], "Nedostaje")); } //return; } //provjera da li je pritisnut prekid if (worker.CancellationPending) { e.Cancel = true; return; } //provjera nepoznatih fajlova if (df.CheckUnknown(Launcher.Name, lib.Name)) { errorResult = true; //e.Result = ErrorResult.Unknown; df.ReadUnknown(Launcher.Name, lib.Name); foreach (string file in df.UnknownFiles) { fileUnknown++; long length = new System.IO.FileInfo(file).Length; files.Add(new CheckFile(++number, file, length, "Nepoznat")); } //return; } //provjera da li je pritisnut prekid if (worker.CancellationPending) { e.Cancel = true; return; } //provjera hash fajlova koji su oznaceni za provjeru (valid) for (int i = 0; i < Launcher.Name.Length; i++) { //provjera da li je pritisnuto za prekid if (worker.CancellationPending) { e.Cancel = true; return; } workerFile.ReportProgress(i); #if DEBUG //Thread.Sleep(250); #endif if (Launcher.Valid[i]) { if (HashFile.GetMD5(Launcher.Name[i]) != Launcher.Hash[i].ToUpper()) { fileIncorrect++; errorResult = true; files.Add(new CheckFile(++number, Launcher.Name[i], Launcher.Size[i], "Neispravan")); //e.Result = ErrorResult.Validated; //return; } } } }
private void workerLoad_DoWork(object sender, DoWorkEventArgs e) { mainForm = new MainForm(); cipher = new StringCipher(); e.Result = ErrorResult.None; #if !DEBUG Process[] process = Process.GetProcessesByName(cipher.Decrypt("VFgdNbbJOfagMQCF5Gvd4Xnly0xKmGGLL3KIaFQMF/XV5UV7t9t+9GJSeIf0epK4QLFz1OL9sNtNNGYlm6KrKZ97X1PtwcDytGTb3B4AnudHPvBL6ZF9qcrzP20GRdCa")); if (process.Length > 1) { e.Result = ErrorResult.Work; return; } if (Path.GetFileName(Application.ExecutablePath) != cipher.Decrypt("tC52bg9OTb+QTRtPuKP9YvM2yNaI/6IPNJ+5jibKIcSi6l3fYcESAtXU2Acz0S9MHiYhKATuKo51GKRG1MCrW3aFiZY5mivawmNQAGLewZoecroi+QoihQCnnBXgPDkT")) { e.Result = ErrorResult.Edit; return; } #endif Network net = new Network(); if (!net.Available()) { e.Result = ErrorResult.Network; return; } ServerBase s = new ServerBase(); if (s.Read()) { Launcher.Locked = s.Locked; Launcher.Working = s.Working; Launcher.Address = s.Address; Launcher.Password = s.Password; Launcher.Teamspeak = s.Teamspeak; Launcher.Website = s.Website; Launcher.Forum = s.Forum; Launcher.YouTube = s.YouTube; Launcher.Facebook = s.Facebook; } else { e.Result = ErrorResult.Database; return; } if (s.Working) { BaseFile bf = new BaseFile(); if (bf.Read()) { Launcher.Valid = new bool[bf.Valid.Count]; Launcher.Name = new string[bf.Name.Count]; Launcher.Size = new long[bf.Size.Count]; Launcher.Hash = new string[bf.Hash.Count]; Launcher.Link = new string[bf.Link.Count]; Launcher.Url = new string[bf.Url.Count]; bf.Valid.CopyTo(Launcher.Valid); bf.Name.CopyTo(Launcher.Name); bf.Size.CopyTo(Launcher.Size); bf.Hash.CopyTo(Launcher.Hash); bf.Link.CopyTo(Launcher.Link); bf.Url.CopyTo(Launcher.Url); } else { e.Result = ErrorResult.Database; return; } } DataFile dataFile = new DataFile(); #if !DEBUG Library dll = new Library(); this.unknownFiles = new List <string>(); dataFile.ReadUnknown(Launcher.Name, dll.Name); if (dataFile.UnknownFiles.Count > 0) { foreach (string unknown in dataFile.UnknownFiles) { unknownFiles.Add(unknown); } e.Result = ErrorResult.Unknown; return; } #endif this.missedFiles = new List <int>(); dataFile.ReadMissed(Launcher.Name); if (dataFile.MissedFiles.Count > 0) { foreach (int missed in dataFile.MissedFiles) { #if !DEBUG Trace.TraceInformation("workerLoad_DoWork(); Missed file ({0}): {1}", missed, Launcher.Name[missed]); #endif this.missedFiles.Add(missed); } e.Result = ErrorResult.Missed; return; } }