public async Task EditReviewShouldWorkCorrectly(string description, ReadingProgress progress, bool thisEdition) { var options = new DbContextOptionsBuilder <AlexandriaDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options; var db = new AlexandriaDbContext(options); await db.AddAsync( new Review { Description = "description1", AuthorId = "author1", BookId = 1, ReadingProgress = ReadingProgress.Unknown, ThisEdition = false, }); await db.SaveChangesAsync(); var reviewsService = new ReviewsService(db); await reviewsService.EditReviewAsync(1, description, progress, thisEdition); var result = await db.Reviews.FirstOrDefaultAsync(); Assert.NotNull(result.ModifiedOn); Assert.Equal(description, result.Description); Assert.Equal(progress, result.ReadingProgress); Assert.Equal(thisEdition, result.ThisEdition); }
public async Task EditReviewAsync(int id, string description, ReadingProgress readingProgress, bool thisEdition) { var review = await this.GetByIdAsync(id); review.Description = description; review.ReadingProgress = readingProgress; review.ThisEdition = thisEdition; review.ModifiedOn = DateTime.UtcNow; await this.db.SaveChangesAsync(); }
public ActionResult NewReadingProgress( [Bind(Include = "AssignmentId,StartPage,FinishPage,StartDateTime,EndDateTime")] ReadingProgress newProgress) { Assignment assignment = db.Assignments.First(c => c.Id == newProgress.AssignmentId); newProgress.Assignment = assignment; if (newProgress.FinishPage < newProgress.StartPage) { return(RedirectToAction("Details", "Books", new { id = assignment.BookId })); } if (newProgress.EndDateTime < newProgress.StartDateTime) { return(RedirectToAction("Details", "Books", new { id = assignment.BookId })); } assignment.Reading.Add(newProgress); db.SaveChanges(); return(RedirectToAction("Details", "Books", new { id = assignment.BookId })); }
public async Task CreateReviewShouldAddInDatabase(string description, string authorId, int bookId, ReadingProgress progress, bool thisEdition) { var options = new DbContextOptionsBuilder <AlexandriaDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options; var db = new AlexandriaDbContext(options); var reviewsService = new ReviewsService(db); await reviewsService.CreateReviewAsync(description, authorId, bookId, progress, thisEdition); var result = await db.Reviews.FirstOrDefaultAsync(); Assert.Equal(1, await db.Reviews.CountAsync()); Assert.Equal(description, result.Description); Assert.Equal(authorId, result.AuthorId); Assert.Equal(bookId, result.BookId); Assert.Equal(progress, result.ReadingProgress); Assert.Equal(thisEdition, result.ThisEdition); Assert.Null(result.ParentId); }
public async Task <int> CreateReviewAsync(string description, string authorId, int bookId, ReadingProgress readingProgress, bool thisEdition, int?parentId = null) { var review = new Review { Description = description, ParentId = parentId, AuthorId = authorId, BookId = bookId, ReadingProgress = readingProgress, ThisEdition = thisEdition, CreatedOn = DateTime.UtcNow, }; await this.db.Reviews.AddAsync(review); await this.db.SaveChangesAsync(); return(review.Id); }