public OcrTests() { var ocrElem = new OcrElement { Id = 1, UserId = System.Guid.NewGuid().ToString() }; var store = new Mock <IUserStore <IdentityUser> >(); userManager = new Mock <UserManager <IdentityUser> >(store.Object, null, null, null, null, null, null, null, null); userManager.Setup(x => x.GetUserId(It.IsAny <ClaimsPrincipal>())).Returns(ocrElem.UserId); var dbOptions = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(databaseName: System.Guid.NewGuid().ToString()) .Options; dbContext = new ApplicationDbContext(dbOptions); dbContext.AwsAccesses.Add(awsAccess); dbContext.OcrElements.Add(ocrElem); dbContext.SaveChanges(); _ocrController = new OcrController(userManager.Object, dbContext); _ocrController.ControllerContext = new ControllerContext(); _ocrController.ControllerContext.HttpContext = new DefaultHttpContext(); _ocrController.TempData = new TempDataDictionary(_ocrController.ControllerContext.HttpContext, Mock.Of <ITempDataProvider>()); }
private IEnumerable <ExtractionResult> ExtractValueFromAnchor(FieldOption option, IEnumerable <OcrElement> elements) { var items = new List <OcrElement>(); foreach (var pattern in option.FieldAnchor.Patterns) { OcrElement element = null; var matchedLines = elements.Where(i => Regex.IsMatch(i.Text, pattern)).ToList(); if (matchedLines.Any()) { if (option.FieldAnchor.ExpectedIndex > 0) { if (matchedLines.Count < option.FieldAnchor.ExpectedIndex) { throw new IndexOutOfRangeException(string.Format("Index provided {0} is out of range for field {1}", option.FieldAnchor.ExpectedIndex, option.FieldName)); } element = matchedLines[option.FieldAnchor.ExpectedIndex]; } else if (option.FieldAnchor.UseLast) { element = matchedLines.Last(); } else { element = matchedLines.First(); } items.Add(element); } } if (!items.Any()) { return new[] { new ExtractionResult() { Option = option, Value = null } } } ; return(ExtractValue(option, items)); }
public async Task <IActionResult> Edit(int id, OcrElement input) { if (id == 0) { TempData["ResultMessage"] = "File not found"; return(RedirectToAction("History")); } var userId = userManager.GetUserId(HttpContext.User); var result = dbContext.OcrElements.Where(x => x.UserId == userId && x.Id == id).FirstOrDefault(); if (result == null) { TempData["ResultMessage"] = "File not found"; return(RedirectToAction("History")); } result.OcrText = input.OcrText; dbContext.OcrElements.Update(result); await dbContext.SaveChangesAsync(); TempData["ResultMessage"] = "Success"; return(RedirectToAction("History")); }