public ActionResult New([Bind(Include = "Id,Title,Description,State")] Issue issue, string returnTo = "Index") { var assignee = Request["Assignee"]; var tagsRequest = Request["Tags"]; var tags = tagsRequest.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(a => a.Trim()).ToArray(); ModelState["Tags"].Errors.Clear(); ModelState["Author"].Errors.Clear(); issue.Date = DateTime.Now; issue.Author = db.Users.Find(User.Identity.GetUserId()); issue.Assignee = db.Users.FirstOrDefault(a => a.UserName == assignee); issue.Tags = new SortedSet <Tag>(); foreach (var tagName in tags) { Tag tag; if (db.Tags.Any(a => a.Name == tagName)) { tag = db.Tags.FirstOrDefault(a => a.Name == tagName); issue.Tags.Add(tag); } else { tag = new Tag(tagName); } issue.Tags.Add(tag); } TryValidateModel(issue); if (ModelState.IsValid) { db.Issues.Add(issue); db.SaveChanges(); this.AddNotification("Issue created.", NotificationType.Success); return(RedirectToAction(returnTo)); } return(View(issue)); }
public static IssueTrackerDbContext Create() { var options = new DbContextOptionsBuilder <IssueTrackerDbContext>().UseInMemoryDatabase(Guid.NewGuid().ToString()).Options; var context = new IssueTrackerDbContext(options); context.Database.EnsureCreated(); context.SaveChanges(); return(context); }