示例#1
0
        private bool SaveDocument(HttpPostedFileBase file, int unionId)
        {
            string ext = Path.GetExtension(file.FileName).ToLower();

            if (ext != ".pdf")
            {
                return(false);
            }

            var doc = unionsRepo.GetTermsDoc(unionId);

            if (doc == null)
            {
                doc = new UnionsDoc {
                    UnionId = unionId
                };
                unionsRepo.CreateDoc(doc);
            }

            doc.FileName = file.FileName;

            byte[] docData;
            using (var reader = new BinaryReader(file.InputStream))
            {
                docData = reader.ReadBytes(file.ContentLength);
            }

            var req = new MetascanHelper.MetadataRequest(Guid.NewGuid().ToString(),
                                                         file.FileName,
                                                         docData,
                                                         MetascanHelper.MetaScanAction.PostFileToMetaScan
                                                         );

            string             dataid = req.PostFileForScanning();
            MetaScanScanStatus metaScanStatus;

            req.CheckFileScan(dataid, out metaScanStatus);

            int tries = 3;

            while (metaScanStatus == MetaScanScanStatus.GeneralError && dataid != "" && tries > 0)
            {
                tries--;
                System.Threading.Thread.Sleep(2000);
                req.CheckFileScan(dataid, out metaScanStatus);
            }

            if (metaScanStatus == MetaScanScanStatus.Valid)
            {
                doc.DocFile = docData;
                unionsRepo.Save();
                return(true);
            }

            return(false);
        }
示例#2
0
 public void CreateDoc(UnionsDoc doc)
 {
     db.UnionsDocs.Add(doc);
 }