public AuditResultInfo(AuditResultInfo audit) { if (audit != null) { this.FindWords = new List <AuditInfo>(); for (int i = 0; i < audit.FindWords.Count; i++) { FindWords.Add(new AuditInfo(audit.FindWords[i])); } File = audit.File; } }
public ModuleBox(ModuleBox moduleBox) { if (moduleBox != null) { ScanListener = moduleBox.ScanListener; ModListener = moduleBox.ModListener; MainFListener = moduleBox.MainFListener; ScanFListener = moduleBox.ScanFListener; CodeId = moduleBox.CodeId; StringBody = moduleBox.StringBody; ApplicationOptions = new ApplicationOptions(moduleBox.ApplicationOptions); Ari = new AuditResultInfo(moduleBox.Ari); ListReportAudit = new List <AuditResultInfo>(moduleBox.ListReportAudit); } }
public static void AuditValid(object obj) { lock (FileLocker)//if not lock exp out of mem { var param = obj as ModuleBox; bool tryDo = true; byte[] file = null; if (param != null) { byte[] pattern = Encoding.Default.GetBytes(param.ApplicationOptions.PatternForReplaceWord) .ToArray(); List <byte[]> listB = new List <byte[]>(); byte[] fileWrite = null; AuditResultInfo result = new AuditResultInfo(param.StringBody); try { file = File.ReadAllBytes(param.StringBody).ToArray(); } catch { tryDo = false; } if (tryDo) { param.ScanFListener?.Invoke(new ModuleBox() { CodeId = CodeId.UpdateLblCurFile, StringBody = Path.GetFileName(param.StringBody) }); for (int i = 0; i < param.ApplicationOptions.FilePatterns.Count; i++) { listB.Add(Encoding.Default.GetBytes(param.ApplicationOptions.FilePatterns[i]).ToArray()); } for (int i = 0; i < listB.Count; i++) { var l = new ReplaceOccurrenceArr1WithArr2(file, listB[i], pattern); if (l.CountReplace > 0) { result.FindWords.Add(new AuditInfo() { CountInFile = l.CountReplace, WordIndexArr = i }); fileWrite = l.Result.ToArray(); } } if (result.FindWords.Count > 0) { try { File.WriteAllBytes( param.ApplicationOptions.PathToCopyFile + @"\" + Path.GetFileName(param.StringBody), fileWrite ?? throw new InvalidOperationException()); } catch { // } string write = "\r\n<" + DateTime.UtcNow.ToLongDateString(); write += "\r\nФайл : " + param.StringBody; param.ModListener(new ModuleBox() { CodeId = CodeId.AddToAuditResult, Ari = new AuditResultInfo(result) }); foreach (var t in result.FindWords) { write += "\r\nСлово: " + param.ApplicationOptions.FilePatterns[t.WordIndexArr] + "[ " + t.CountInFile.ToString() + " ]"; } write += "\r\n>"; File.AppendAllText(param.ApplicationOptions.PathToCopyFile + @"\Report.txt", write); param.MainFListener?.Invoke( new ModuleBox() { CodeId = CodeId.UpdateAuditMonitor, StringBody = write }); } } } } }