public async Task<ActionResult> CreateFromUrl(string url) { ViewBag.DeckID = new SelectList(db.GetUserDecks(User), "ID", "Title"); var urlParameter = Uri.EscapeDataString(url); var fullUrl = $"https://boilerpipe-web.appspot.com/extract?url={urlParameter}&output=text"; var request = WebRequest.Create(fullUrl); var responce = await request.GetResponseAsync(); var responseStream = responce.GetResponseStream(); var streamReader = new StreamReader(responseStream); var text = await streamReader.ReadToEndAsync(); var formattedText = text.Replace("\n", Environment.NewLine + Environment.NewLine); var priorities = GetFullPriorityList(); var card = new CreateCardViewModel { Text = formattedText, Url = url, PriorityList = priorities }; return View("Create", card); }
public async Task<ActionResult> Extract(int ID, string text) { var card = await db.Cards.FindAsync(ID); if (!card.IsAuthorized(User)) { return new HttpUnauthorizedResult(); } else { ModelState.Clear(); var newText = TextConverter.ReplaceTag(text, "selection", "extract"); card.Text = newText; await db.SaveChangesAsync(); var cards = card.Deck.Cards; var selection = TextConverter.GetSelection(text); var priorities = GetShortPriorityList(); var newCard = new CreateCardViewModel { DeckID = card.DeckID, Url = card.Url, ParentCardID = card.ID, Text = selection, PriorityList = priorities }; return View("Create", newCard); } }
// GET: Cards/Create/5 public ActionResult Create(int? DeckID, string text) { if (DeckID == null) { ViewBag.DeckID = new SelectList(db.GetUserDecks(User), "ID", "Title"); var priorities = GetFullPriorityList(); var card = new CreateCardViewModel { Text = text, PriorityList = priorities }; return View(card); } else { var priorities = GetFullPriorityList(); var card = new CreateCardViewModel { DeckID = DeckID.Value, Text = text, PriorityList = priorities }; return View(card); } }