示例#1
0
        public ActionResult Index(string s)
        {
            var files = Request.Files;
            var res   = new TagDetail();

            try
            {
                if (files?.Count > 0)
                {
                    for (int i = 0; i < files.Count; i++)
                    {
                        var file = files[i];
                        if (file != null)
                        {
                            var    fileName = file.FileName;
                            string filePath = Path.GetFileName(fileName);
                            if (filePath != null)
                            {
                                string fullPath = Path.Combine(Server.MapPath("~/File"), filePath);
                                file.SaveAs(fullPath);
                                var extractedText = Helper.ExtractTextFromPdf(fullPath);
                                if (string.IsNullOrEmpty(extractedText))
                                {
                                    extractedText = ExtractTesseract(fullPath);
                                }
                                var forBank        = _bankContext.GetBankDetail(extractedText);
                                var allIdentifiers = _identifierContext.GetAll();
                                var(noticeTypesName, noticeTypesValue) =
                                    _noticeContext.GetTypes(extractedText?.ToLower(), allIdentifiers);
                                res.NoticeType = string.Join(",", noticeTypesName);
                                res.FileName   = fileName;
                                res.Bank       = forBank.Name;
                                res.Tags       = new List <Tag>();
                                foreach (var notice in noticeTypesValue)
                                {
                                    var resTags =
                                        _tagDetailIdentifierContext.GetTagDetailIdentifier(notice,
                                                                                           extractedText?.ToLower());
                                    res.Tags.AddRange(resTags);
                                }
                            }
                        }
                    }
                }
                TempData["Tags"] = res.Tags;
                res.Executed     = true;
            }
            catch (Exception e)
            {
                throw e;
            }
            int milliseconds = 2000;

            Thread.Sleep(milliseconds);
            //return RedirectToAction("Extracted", res);
            return(View(res));
        }
示例#2
0
        // POST: api/Extract
        public ActionResult Post()
        {
            var httpRequest = HttpContext.Current.Request;
            var files       = httpRequest.Files;
            var res         = new TagDetail();

            if (files?.Count > 0)
            {
                for (int i = 0; i < files.Count; i++)
                {
                    var file = files[i];
                    {
                        var    fileName = file.FileName;
                        string filePath = System.IO.Path.GetFileName(fileName);
                        {
                            string fullPath = HttpContext.Current.Server.MapPath("~/File/" + filePath);
                            file.SaveAs(fullPath);
                            var extractedText  = Helper.ExtractTextFromPdf(fullPath);
                            var forBank        = _bankContext.GetBankDetail(extractedText);
                            var allIdentifiers = _identifierContext.GetAll();
                            var(noticeTypesName, noticeTypesValue) = _noticeContext.GetTypes(extractedText.ToLower(), allIdentifiers);
                            res.NoticeType = string.Join(",", noticeTypesName);
                            res.FileName   = fileName;
                            res.Bank       = forBank.Name;
                            res.Tags       = new List <Tag>();
                            foreach (var notice in noticeTypesValue)
                            {
                                var resTags = _tagDetailIdentifierContext.GetTagDetailIdentifier(notice, extractedText.ToLower());
                                res.Tags.AddRange(resTags);
                            }
                        }
                    }
                }
            }
            return(new JsonResult()
            {
                Data = res, JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }