public override List <CheckResult> Analyze(object mailBody) { var results = new List <CheckResult>(); var checkMethods = new CheckMethods(); var links = LinksFind(mailBody as string); Action <CheckResult> add = x => { if (x != null) { results.Add(x); } }; Action <List <CheckResult> > addRange = x => { if (x != null) { x.RemoveAll(y => y == null); results.AddRange(x); } }; if (links.Any()) { foreach (string link in links) { addRange(checkMethods.CheckLinkShorteners("Link-Shortener", link)); add(checkMethods.CheckBadTld("Link-badTLD", link)); // check for keywords in links addRange(checkMethods.CheckKeywords("Link-Keyword", link)); } HasLink = true; score = results.Sum(x => x.score); } return(results); }
public override List <CheckResult> Analyze(object data) { var attachments = data as Attachments; var results = new List <CheckResult>(); CheckMethods checkMethods = new CheckMethods(); Action <List <CheckResult> > addRange = x => { if (x != null) { x.RemoveAll(y => y == null); results.AddRange(x); } }; if (attachments == null) { return(null); } foreach (Attachment attachment in attachments) { addRange(checkMethods.CheckDoubleExtensions("Attachment-DoubleExtensions", attachment.FileName)); addRange(checkMethods.CheckBadExtensions("Attachment-BadExtension", attachment.FileName)); addRange(checkMethods.CheckKeywords("Attachment-Keyword", attachment.FileName)); addRange(checkMethods.CheckBadHashes("Attachment-FileHash", attachment)); } score = results.Sum(x => x.score); return(results); }