public async Task <IActionResult> CreateReview([FromBody] CreateReviewRequest request)
        {
            var createReviewCommand = new CreateReviewCommand(request);
            var result = await mediator.Send(createReviewCommand);

            return(StatusCode((int)result.Code, result.Value));
        }
Exemplo n.º 2
0
        public async Task LifeCycle()
        {
            var createCmd = new CreateReviewCommand {
                Review = _review
            };

            createCmd.SetContext(_identity);
            var msgCode = await ReviewService.CreateReviewAsync(createCmd).ConfigureAwait(false);

            Assert.IsTrue(msgCode.IsSuccess(), msgCode);

            var list = await ReviewDAL.GetReviewsAsync(new SyncSoft.StylesDelivered.Query.Review.GetReviewsQuery {
            }).ConfigureAwait(false);

            var id = list.Items.OrderByDescending(x => x.CreatedOnUtc).Select(x => x.ID).FirstOrDefault();

            var approveCmd = new ApproveReviewCommand {
                ID = id
            };

            approveCmd.SetContext(_identity);
            msgCode = await ReviewService.ApproveReviewAsync(approveCmd).ConfigureAwait(false);

            Assert.IsTrue(msgCode.IsSuccess(), msgCode);

            var deleteCmd = new DeleteReviewCommand {
                ID = id
            };

            deleteCmd.SetContext(_identity);
            msgCode = await ReviewService.DeleteReviewAsync(deleteCmd).ConfigureAwait(false);

            Assert.IsTrue(msgCode.IsSuccess(), msgCode);
        }
Exemplo n.º 3
0
        public async Task Create_NoAuthentication_Unauthorized()
        {
            // Arrange
            var client  = _factory.CreateClient();
            var command = new CreateReviewCommand {
                Title = "Test no authentication"
            };

            // Act
            var response = await client.PostAsJsonAsync(Uri, command);

            // Assert
            response.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
        }
Exemplo n.º 4
0
        public ActionResult Create(CreateReviewModel createReview)
        {
            if (ModelState.IsValid)
            {
                var createReviewCommand = new CreateReviewCommand(createReview.ServiceId, UserInfo.Id, createReview.Score, createReview.Body);
                ExecuteCommand(createReviewCommand);

                var updateScreeningsCommand = new UpdateScreeningsCommand(createReview.ServiceId);
                ExecuteNonBlockingCommand(updateScreeningsCommand);

                TempData[ViewDataKeys.Message] = new SuccessMessage(Resources.Reviewed);
            }

            return RedirectToAction("Profile", "Accounts");
        }
Exemplo n.º 5
0
        public ActionResult Create(CreateReviewModel createReview)
        {
            if (ModelState.IsValid)
            {
                var createReviewCommand = new CreateReviewCommand(createReview.ServiceId, UserInfo.Id, createReview.Score, createReview.Body);
                ExecuteCommand(createReviewCommand);

                var updateScreeningsCommand = new UpdateScreeningsCommand(createReview.ServiceId);
                ExecuteNonBlockingCommand(updateScreeningsCommand);

                TempData[ViewDataKeys.Message] = new SuccessMessage(Resources.Reviewed);
            }

            return(RedirectToAction("Profile", "Accounts"));
        }
        public IActionResult Post(int foodTruckId, [FromBody] CreateReviewModel createModel)
        {
            var createCommand = new CreateReviewCommand()
            {
                FoodTruckId = foodTruckId
            };

            this.mapper.Map <CreateReviewModel, CreateReviewCommand>(createModel, createCommand);

            Review foodTruck = this.foodTruckService.CreateFoodTruckReview(createCommand);

            var model = this.mapper.Map <Review, ReviewModel>(foodTruck);

            return(this.CreatedAtRoute(GET_SINGLE_FOOD_TRUCK_REVIEW,
                                       new { FoodTruckId = model.FoodTruckId, ReviewId = model.ReviewId }, model));
        }
        public IActionResult Post(int foodTruckId, [FromBody] CreateReviewModel createModel)
        {
            var createCommand = new CreateReviewCommand()
            {
                FoodTruckId = foodTruckId
            };

            _mapper.Map <CreateReviewModel, CreateReviewCommand>(createModel, createCommand);

            var result = _foodTruckService.CreateFoodTruckReview(createCommand);

            return(CreateResponse <Review, ReviewModel>(result, (entity) => {
                var model = _mapper.Map <Review, ReviewModel>(entity);
                return CreatedAtRoute(GET_SINGLE_FOOD_TRUCK_REVIEW, new { foodTruckId = entity.FoodTruckId, reviewId = entity.ReviewId }, model);
            }));
        }
        public Review CreateFoodTruckReview(CreateReviewCommand command)
        {
            FoodTruck foodTruck = _foodTruckRepository.GetFoodTruck(command.FoodTruckId);

            if (foodTruck == null)
            {
                throw new ObjectNotFoundException($"Food truck id {command.FoodTruckId} was not found");
            }

            Review review = new Review(foodTruck, _dateTimeProvider.CurrentDateTime, command.Rating, command.Comments);

            foodTruck.AddReview(review);

            // Persist the changes to the database
            _foodTruckRepository.Save(foodTruck);
            UnitOfWork.SaveChanges();

            return(review);
        }
        public Result <Review> CreateFoodTruckReview(CreateReviewCommand command)
        {
            FoodTruck foodTruck = _foodTruckRepository.GetFoodTruck(command.FoodTruckId);

            if (foodTruck == null)
            {
                return(Result.Failure <Review>(new ObjectNotFoundError("No food truck with the id of {foodTruckId} could be found")));
            }

            Review review = new Review(foodTruck, _dateTimeProvider.CurrentDateTime, command.Rating, command.Comments);

            foodTruck.AddReview(review);

            // Persist the changes to the database
            _foodTruckRepository.Save(foodTruck);
            UnitOfWork.SaveChanges();

            return(Result.Success <Review>(review));
        }
Exemplo n.º 10
0
        public void Create_Review_With_All_Required_Information()
        {
            int serviceId, clientId;
            const byte score = 5;
            PupulateEntities(out clientId, out serviceId);

            const string body = "Review Body";
            var command = new CreateReviewCommand(serviceId, clientId, score, body);
            ExecuteCommand(command);

            var review = Session.QueryOver<Review>()
                .Fetch(r => r.Service).Eager
                .Where(r => r.Service.Id == serviceId && r.Client.Id == clientId)
                .And(r => r.Body == body).SingleOrDefault();

            Assert.NotNull(review);
            Assert.AreEqual(body, review.Body);
            Assert.AreEqual(score, review.Service.TotalReviewScore);
            Assert.AreEqual(1, review.Service.ReviewCount);
        }
Exemplo n.º 11
0
        // *******************************************************************************************************************************
        #region -  CreateReview  -

        public async Task <string> CreateReviewAsync(CreateReviewCommand cmd)
        {
            var userId = cmd.Identity.UserID();

            var dto = await OrderItemDAL.GetOrderItemsAsync(cmd.Review.OrderNo).ConfigureAwait(false);

            if (!dto.IsPresent() || !dto.Select(x => x.SKU == cmd.Review.SKU).SingleOrDefault())
            {
                return(MsgCodes.OrderNotExists);
            }
            // ^^^^^^^^^^

            var count = await ReviewDAL.GetOrderItemReviewAsync(cmd.Review.OrderNo, cmd.Review.SKU, userId).ConfigureAwait(false);

            if (count > 0)
            {
                return("You have already reviewed this item.");
            }
            // ^^^^^^^^^^

            if (!cmd.Review.Content.IsPresent())
            {
                return(MsgCodes.ContentCannotBeEmpty);
            }
            // ^^^^^^^^^^

            if (cmd.Review.Title.IsNull())
            {
                cmd.Review.Content += '\n';
                var rs    = Regex.Match(cmd.Review.Content, "(.*?)([.,?!]\\s|(?<=.)[\n])");
                var title = rs?.Value;
                cmd.Review.Title = title.Trim(new[] { '\n', '\t', ' ' });
            }
            cmd.Review.ID           = Guid.NewGuid();
            cmd.Review.User_ID      = userId;
            cmd.Review.User         = cmd.Identity.UserNickName();
            cmd.Review.Status       = ReviewStatusEnum.Pending;
            cmd.Review.CreatedOnUtc = DateTime.UtcNow;

            return(await ReviewDAL.InsertReviewAsync(cmd.Review).ConfigureAwait(false));
        }
Exemplo n.º 12
0
        public void Create_Review_With_All_Required_Information()
        {
            int        serviceId, clientId;
            const byte score = 5;

            PupulateEntities(out clientId, out serviceId);

            const string body    = "Review Body";
            var          command = new CreateReviewCommand(serviceId, clientId, score, body);

            ExecuteCommand(command);

            var review = Session.QueryOver <Review>()
                         .Fetch(r => r.Service).Eager
                         .Where(r => r.Service.Id == serviceId && r.Client.Id == clientId)
                         .And(r => r.Body == body).SingleOrDefault();

            Assert.NotNull(review);
            Assert.AreEqual(body, review.Body);
            Assert.AreEqual(score, review.Service.TotalReviewScore);
            Assert.AreEqual(1, review.Service.ReviewCount);
        }
Exemplo n.º 13
0
 public async Task <ActionResult <CreateReviewOutputModel> > Create(
     CreateReviewCommand command)
 => await this.Send(command);
Exemplo n.º 14
0
 public Task <string> CreateReviewAsync(CreateReviewCommand cmd) => base.RequestAsync(cmd);
Exemplo n.º 15
0
        public async Task <ActionResult <Unit> > Create(int id, CreateReviewCommand command)
        {
            command.SportObjectId = id;

            return(await Mediator.Send(command));
        }
Exemplo n.º 16
0
        public async Task <ActionResult> CreateReview(CreateReviewCommand request, CancellationToken cancellationToken)
        {
            await _mediator.Send(request, cancellationToken);

            return(Ok());
        }