Beispiel #1
0
        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));
        }
Beispiel #2
0
        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);
        }