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)); }
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); }
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); }
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 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)); }
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); }
// ******************************************************************************************************************************* #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)); }
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); }
public async Task <ActionResult <CreateReviewOutputModel> > Create( CreateReviewCommand command) => await this.Send(command);
public Task <string> CreateReviewAsync(CreateReviewCommand cmd) => base.RequestAsync(cmd);
public async Task <ActionResult <Unit> > Create(int id, CreateReviewCommand command) { command.SportObjectId = id; return(await Mediator.Send(command)); }
public async Task <ActionResult> CreateReview(CreateReviewCommand request, CancellationToken cancellationToken) { await _mediator.Send(request, cancellationToken); return(Ok()); }