public ActionResult Index(HttpPostedFileBase file) { // max of 25 MB if (file.ContentLength > 0 && file.ContentLength < ((1024 * 1024) * 25)) { var add = new ScanItemAdd(); add.FileName = Path.GetFileName(file.FileName); add.Data = new byte[file.ContentLength]; // Read the file into memory file.InputStream.Read(add.Data, 0, add.Data.Length); // Get md5 hash add.MD5 = BerzerkAPI.Analyzers.MD5.FromByteArray(add.Data); // try to scan the object var result = man.ScanItemAdd(add); if (result != null) { return(RedirectToAction("Result", new { id = result.Id })); } } return(RedirectToAction("Index")); }
public ScanItemBase ScanItemAdd(ScanItemAdd add) { // Scan the file data var scan = BerzerkAPI.Analyzers.PatternAnalyzer.AnalyzeByteArray(add.Data, this.Signatures); // get the result if (scan != null) { add.Result = scan.Definition; } else { add.Result = "Clean"; } // Add the item to the db var created = ds.ScanItem.Add(AutoMapper.Mapper.Map <ScanItem>(add)); ds.SaveChanges(); // return null or the results return((created == null) ? null : AutoMapper.Mapper.Map <ScanItemBase>(created)); }