public async Task <IActionResult> Review(AuctionHouseReviewInputModel inputModel) { if (!ModelState.IsValid) { var allAuctionHouses = await this.auctionHouseService.GetAllAuctionHouses().ToListAsync(); this.ViewData["auctionHouses"] = allAuctionHouses.Select(cities => new AuctionHouseNameViewModel { Name = cities.Name }) .ToList(); return(this.View()); } var auctionHouseFromDb = await this.auctionHouseService.GetByName(inputModel.AuctionHouseName); if (auctionHouseService == null) { return(this.Redirect(ErrorRoute)); } var authorId = User.FindFirst(ClaimTypes.NameIdentifier).Value; var author = await this.userService.GetById(authorId); await this.auctionHouseService.CreateReview(auctionHouseFromDb.Id, inputModel); return(this.RedirectToHome()); }
public async Task <bool> CreateReview(string id, AuctionHouseReviewInputModel inputModel) { if (id == null) { throw new ArgumentNullException(nameof(id)); } var review = new Review { Author = inputModel.Author, Description = inputModel.Description, AuctionHouseId = id }; context.Reviews.Add(review); int result = await context .SaveChangesAsync(); return(result > 0); }
public async Task CreateReview_WithCorrectData_ShouldReturnSuccessfullyCreate() { string errorMessagePrefix = "AuctionService CreateReview() does not work properly."; var context = AuctionDbContextInMemory.InitializeContext(); await SeedData(context); this.auctionHouseService = new AuctionHouseService(context); var dummyAuctionId = context.AuctionHouses.First().Id; var reviewModel = new AuctionHouseReviewInputModel { Author = "Hugo", Description = "Hugo is the best" }; bool actualResult = await this.auctionHouseService.CreateReview(dummyAuctionId, reviewModel); Assert.True(actualResult, errorMessagePrefix); }