public async Task <IActionResult> Create(int id, [Bind("CommentBody, UpVote")] Comment comment, Error error, [Bind("Alias")] User user)
        {
            if (ModelState.IsValid)
            {
                comment.ErrExampleID = id;
                User checkUser = _context.Users.FirstOrDefault(u => u.Alias == user.Alias);

                if (checkUser == null)
                {
                    await _context.Users.AddAsync(user);

                    await _context.SaveChangesAsync();

                    user = await _context.Users.FirstOrDefaultAsync(u => u.Alias == user.Alias);

                    comment.UserID = user.ID;
                }
                else
                {
                    comment.UserID = checkUser.ID;
                }
                await _context.Comments.AddAsync(comment);

                await _context.SaveChangesAsync();

                return(RedirectToAction("Search", "Home", new { search = error.DetailedName }));
            }
            return(RedirectToAction("Search", "Home", new { search = error.DetailedName }));
        }
Ejemplo n.º 2
0
        public async void ViewSpecificDetailsOfAnError()
        {
            DbContextOptions <SyntacsDbContext> options =
                new DbContextOptionsBuilder <SyntacsDbContext>()
                .UseInMemoryDatabase(Guid.NewGuid().ToString())
                .Options;

            using (SyntacsDbContext context = new SyntacsDbContext(options))
            {
                Comment newComment = new Comment
                {
                    ID          = 1,
                    CommentBody = "Some comment text",
                    UpVote      = 0
                };
                User user = new User
                {
                    ID    = 23,
                    Alias = "bob"
                };
                Error error = new Error
                {
                    ID           = 1,
                    DetailedName = "Invalid Conversion",
                    CodeExample  = "woo\ncode\twoo"
                };

                await context.Comments.AddAsync(newComment);

                await context.Users.AddAsync(user);

                await context.SaveChangesAsync();

                ErrorResultViewModel ervm = await ErrorResultViewModel.ViewDetailsError(1, context, error);

                Assert.Equal(error.DetailedName, ervm.Error.DetailedName);
            }
        }