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());
        }
Example #2
0
        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);
        }