public ActionResult Create(Enemy enemy) { if (ModelState.IsValid) { db.Enemies.Add(enemy); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(enemy)); }
public ActionResult Create(Location location) { if (ModelState.IsValid) { db.Locations.Add(location); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(location)); }
//creating this by hand w/o dbservice on purpose public static void CreateFourPagesWithTags(WikiContext context) { CreatePage("title", "eins zwei drei vier fuenf sechs sieben acht neun zehn elf zwoelf dreizehn test vierzehn fuenfzehn sechzehn siebzehn achtzehn neunzehn zwanzig", context); CreatePage("title2", "eins zwei drei vier fuenf sechs sieben acht neun zehn elf zwoelf dreizehn test vierzehn fuenfzehn sechzehn siebzehn achtzehn neunzehn zwanzig", context); CreatePage("title3", "eins zwei drei vier fuenf sechs sieben acht neun zehn elf zwoelf dreizehn test vierzehn fuenfzehn sechzehn siebzehn achtzehn neunzehn zwanzig", context); CreatePage("title4", "eins zwei drei vier fuenf sechs sieben acht neun zehn elf zwoelf dreizehn NOOO vierzehn fuenfzehn sechzehn siebzehn achtzehn neunzehn zwanzig", context); CreateTag("eins", context); CreateTag("zwei", context); CreateTag("drei", context); CreateTag("vier", context); CreatePageTagRef(1, 1, context); CreatePageTagRef(1, 2, context); CreatePageTagRef(1, 3, context); CreatePageTagRef(1, 4, context); CreatePageTagRef(2, 1, context); CreatePageTagRef(2, 2, context); CreatePageTagRef(2, 3, context); CreatePageTagRef(2, 4, context); CreatePageTagRef(3, 1, context); CreatePageTagRef(3, 2, context); CreatePageTagRef(3, 3, context); CreatePageTagRef(3, 4, context); CreatePageTagRef(4, 1, context); CreatePageTagRef(4, 2, context); CreatePageTagRef(4, 3, context); CreatePageTagRef(4, 4, context); context.SaveChanges(); }
private static void WebParseCompanyInfoboxes() { var stopwatch = Stopwatch.StartNew(); var webParser = new InfoboxWebParser("https://en.wikipedia.org/w/index.php?title=Special:WhatLinksHere/Template:Infobox_company&limit=500"); var urls = webParser.GetArticlesUrl(); Console.WriteLine("Found {0} articles ({1})", urls.Count, stopwatch.Elapsed.ToString()); var groups = urls.Select((u, i) => new { Url = u, Index = i }).GroupBy(a => a.Index / 1000).ToList(); Console.WriteLine("Start parsing infoboxes for {0} groups of 1000 articles", groups.Count); foreach (var group in groups.Skip(69)) { var boxes = new List <ParsedInfobox>(); foreach (var url in group) { boxes.AddRange(webParser.GetArticleInfobox(url.Url)); } using (var db = new WikiContext()) { db.ParsedInfoboxes.AddRange(boxes); db.SaveChanges(); } Console.WriteLine("Group #{0} done", group.Key); } Console.Write("Parsed and persisted company infoboxes in {0}", stopwatch.Elapsed.ToString()); }
public IActionResult Add(Guid id, string text) { var change = new ИсторияПравокСтатьи { Логин = User.Identity.Name, IdСтатуса = db.СтатусыПравокСтатьиs.FirstOrDefault(s => s.Наименование == "Рассматривается").IdСтатуса, Текст = text, IdСтатьи = db.ИсторияПравокСтатьиs.FirstOrDefault(h => h.IdПравки == id).IdСтатьи, ДатаЗаявки = DateTime.Now, FkIdПравки = id, }; db.ИсторияПравокСтатьиs.Add(change); db.SaveChanges(); return(RedirectToAction("UserRequests", "Request")); }
private static void CreateTag(string v, WikiContext context) { Tag t = new Tag(); t.Name = v; context.Tags.Add(t); context.SaveChanges(); }
private static void CreatePage(string title, string text, WikiContext context) { Page p = new Page(); p.Title = title; p.Content = text; context.Pages.Add(p); context.SaveChanges(); }
private static void CreatePageTagRef(int pId, int tId, WikiContext context) { PageTag pt = new PageTag(); pt.PageId = pId; pt.TagId = tId; context.PageTags.Add(pt); context.SaveChanges(); }
public ActionResult Create(Weapon weapon) { try { if (ModelState.IsValid) { wikiContext.Weapons.Add(weapon); wikiContext.SaveChanges(); return(RedirectToAction("Index")); } } catch (Exception e) { return(Json(new { error = e.Message }, JsonRequestBehavior.AllowGet)); } return(View()); }
public ActionResult Submit() { var title = Request["title"]; var category = Request["category"]; var content = Request["content"]; var id = 0; int.TryParse(Request["pId"], out id); Page page = null; if (content != null && title != null && category != null) { page = new Page() { Name = title, Category = category, Text = content, Edits = new List <EditData>() { new EditData() { Owner = page, Description = "Page Created", Time = DateTime.UtcNow } } }; try { var wc = new WikiContext(); if (id == 0) { wc.Pages.Add(page); } else { var p = wc.Pages.First(o => o.Id == id); p.Name = title; p.Text = content; p.Category = category; p.Edits.Add(new EditData() { Owner = p, Time = DateTime.UtcNow, Description = Request["edit"] }); page = p; } wc.SaveChanges(); } catch { page = null; } } return(View(page)); }
/// <summary> /// Extracted from wikipedia dumps (step 1/3). /// Browse the wiki dumps and extract the markdown for each company infobox. /// </summary> private static void ParseCompanyInfoboxesInDumps() { var generalStopwatch = Stopwatch.StartNew(); var dumpDir = Utilities.PathToDownloadDirectory; foreach (var filePath in Directory.EnumerateFiles(dumpDir)) { Console.WriteLine("Start parsing infoboxes in file {0}", Path.GetFileName(filePath)); var stopwatch = Stopwatch.StartNew(); var infoboxes = new List <RawDumpParsedInfobox>(); var wikiReader = new XmlDumpFileReader(filePath); Predicate <string> pageFilterer = s => s.Contains(":"); // Real Wikipedia pages contains ":" (others are conversations etc.) var page = wikiReader.ReadNext(pageFilterer); while (page != null) { var boxes = page.GetInfoboxTexts("company").Select(s => new RawDumpParsedInfobox() { Markdown = HttpUtility.HtmlDecode(s), PageTitle = page.Title }); infoboxes.AddRange(boxes); page = wikiReader.ReadNext(pageFilterer); } stopwatch.Stop(); Console.WriteLine("Parsed {0} infoboxes in {1}", infoboxes.Count, stopwatch.Elapsed.ToString()); stopwatch.Restart(); // Persist infoboxes using (var db = new WikiContext()) { db.RawDumpParsedInfoboxes.AddRange(infoboxes); db.SaveChanges(); } stopwatch.Stop(); Console.WriteLine("Persisted {0} infoboxes in {1}", infoboxes.Count, stopwatch.Elapsed.ToString()); Console.WriteLine("--"); } generalStopwatch.Stop(); Console.WriteLine("Total infobox parsing time: {0}", generalStopwatch.Elapsed.ToString()); }
public ActionResult Create(Comment comment) { if (ModelState.IsValid) { db.Comments.Add(comment); db.SaveChanges(); } try { return(RedirectToAction("Index", comment.Category)); } catch (Exception) { return(RedirectToAction("Index", "Home")); } }
/// <summary> /// Extracted from wikipedia dumps (step 2/3). /// Process the markdown for each company infobox and extract the properties (key/value pairs). /// </summary> private static void ProcessCompanyInfoboxes() { var batchSize = 1000; var index = 0; using (var db = new WikiContext()) { var infoboxes = db.RawDumpParsedInfoboxes.OrderBy(box => box.Id).Skip(index * batchSize).Take(batchSize).ToList(); while (infoboxes.Any()) { if (index % 10 == 0) { Console.WriteLine("Start parsing batch #{0}", index); } foreach (var infobox in infoboxes) { var markdownRegex = new Regex(@"(\n\s*\||\|\s*\n)(?=[\sa-zA-Z_]+=)", RegexOptions.Compiled); var parts = markdownRegex.Split(infobox.Markdown).ToList(); var properties = parts.Where(line => line.Contains("=")) .Select(line => line.Split(new char[] { '=' }, 2)) .Select(tup => new RawInfoboxProperty { PropKey = tup.First().Trim(), PropValue = tup.Last().Trim(), PageTitle = infobox.PageTitle, InfoboxId = infobox.Id }) .ToList(); db.RawInfoboxProperties.AddRange(properties); } db.SaveChanges(); index++; infoboxes = db.RawDumpParsedInfoboxes.OrderBy(box => box.Id).Skip(index * batchSize).Take(batchSize).ToList(); } } // One infobox doesn't have any property -> ATMNet (normal) }
private static void CreateOverviewPage(WikiContext db) { Tag t1 = new Tag(); t1.Name = "WikiCore"; t1.Color = 1; db.Tags.Add(t1); Page p = new Page(); p.Title = "Start"; p.Content = "Welcome to __WikiCore__.\r\n\r\nWikiCore is a modest, small and fast Wiki featuring [MarkDown](https://daringfireball.net/projects/markdown/) editing.\r\n\r\nUnlike regular Wikis pages are organized with tags.\r\n\r\nPlease report Bugs in a [GitHub-Issue](https://github.com/philphilphil/WikiCore/issues)."; db.Pages.Add(p); var pt = new PageTag { Tag = t1, Page = p }; db.PageTags.Add(pt); db.SaveChanges(); }
public void Save() { db.SaveChanges(); }