public async Task <IActionResult> Edit(int id, [Bind("Id,Data,StartDate,DueDate,StoreID")] FlyerReader flyerReader) { if (id != flyerReader.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(flyerReader); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!FlyerReaderExists(flyerReader.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["StoreID"] = new SelectList(_context.Store, "StoreID", "StoreName", flyerReader.StoreID); return(View(flyerReader)); }
public async Task <IActionResult> Create(FlyerReaderViewModel model) { if (ModelState.IsValid) { List <FlyerOffer> flyerOffers = new List <FlyerOffer>(); FlyerReader flyerReader = new FlyerReader { Img = new List <ByteWraper>(), DueDate = model.DueDate, StartDate = model.StartDate, StoreID = model.StoreID, Data = new String(String.Empty) }; if (model.photos.Count > 0) { var data = String.Empty; var flyerText = String.Empty; foreach (IFormFile photo in model.photos) { var Stream = new MemoryStream(); await photo.CopyToAsync(Stream); ByteWraper byteWraper = new ByteWraper(); byteWraper.photo = Stream.ToArray(); flyerReader.Img.Add(byteWraper); var Googleimage = Image.FromBytes(byteWraper.photo); var client = ImageAnnotatorClient.Create(); var response = client.DetectText(Googleimage); foreach (var annotation in response) { if (annotation.Description != null) { flyerText += " " + annotation.Description; } } String text = String.Empty; text = flyerText.Replace("\n", " "); string str = text.ToLower(); string[] arr = str.Split(" "); var a = from k in arr orderby k select k; String Description = String.Empty; String ItemName = String.Empty; List <DoubleWraper> numbers = new List <DoubleWraper>(); foreach (string res in a.Distinct()) { Description += " " + res.ToLower(); if (res != "") { Item x; if (pluralizationService.IsPlural(res)) { x = _context.Item.FirstOrDefault(i => i.ItemName.ToLower() == pluralizationService.Singularize(res)); } else { x = _context.Item.FirstOrDefault(i => i.ItemName.ToLower() == res); } if (x != null) { ItemName = x.ItemName; } if (res.IsInt() || res.IsDecimal()) { numbers.Add(new DoubleWraper { num = Double.Parse(res) }); } } } if (numbers.Count > 0 && ItemName != "") { flyerOffers.Add(new FlyerOffer { ItemName = ItemName, Description = Description, Numbers = numbers, flyerphoto = byteWraper.photo, StoreID = flyerReader.StoreID, DueDate = flyerReader.DueDate, StartDate = flyerReader.StartDate, flyerReader = flyerReader, recognized = true }); } else if (ItemName == null || ItemName == "") { flyerOffers.Add(new FlyerOffer { Description = Description, Numbers = numbers, flyerphoto = byteWraper.photo, StoreID = flyerReader.StoreID, DueDate = flyerReader.DueDate, StartDate = flyerReader.StartDate, flyerReader = flyerReader, recognized = false }); } flyerText = String.Empty; } } flyerReader.flyerOffers = flyerOffers; _context.FlyerReader.Add(flyerReader); _context.SaveChanges(); return(RedirectToAction("FlyersOffers")); } ViewData["StoreID"] = new SelectList(_context.Store, "StoreID", "StoreName", model.StoreID); return(View(model)); }