public object Post(OrderRatingsRequest request) { var accountId = new Guid(this.GetSession().UserAuthId); if (request.RatingScores != null) { // cleanup ratings in case we were sent duplicates var ratingScoresCleanedUpForDuplicates = new List <RatingScore>(); foreach (var rating in request.RatingScores) { if (ratingScoresCleanedUpForDuplicates.None(x => x.Name == rating.Name)) { ratingScoresCleanedUpForDuplicates.Add(rating); } } request.RatingScores = ratingScoresCleanedUpForDuplicates; if (HasNoValidExistingRating(request.OrderId) && request.RatingScores.Any()) { var command = new RateOrder { AccountId = accountId, Note = request.Note, OrderId = request.OrderId, RatingScores = request.RatingScores }; _commandBus.Send(command); } } return(string.Empty); }
public async void when_order_rated_ratings_should_not_be_null() { var sut = new OrderServiceClient(BaseUrl, SessionId, new DummyPackageInfo(), null, null); var orderRatingsRequest = new OrderRatingsRequest { OrderId = _orderId, Note = "Note", RatingScores = new List <RatingScore> { new RatingScore { RatingTypeId = Guid.NewGuid(), Score = 1, Name = "Politness" }, new RatingScore { RatingTypeId = Guid.NewGuid(), Score = 2, Name = "Safety" }, new RatingScore { RatingTypeId = Guid.NewGuid(), Score = 2, Name = "Safety" } } }; await sut.RateOrder(orderRatingsRequest); var orderRatingDetails = await sut.GetOrderRatings(_orderId); Assert.NotNull(orderRatingDetails); Assert.That(orderRatingDetails.Note, Is.EqualTo(orderRatingsRequest.Note)); Assert.That(orderRatingDetails.RatingScores.Count, Is.EqualTo(2)); }
public Task SendRatingReview(OrderRatings orderRatings) { ClearLastUnratedOrder(); var request = new OrderRatingsRequest { Note = orderRatings.Note, OrderId = orderRatings.OrderId, RatingScores = orderRatings.RatingScores }; return(UseServiceClientAsync <OrderServiceClient>(service => service.RateOrder(request))); }
public object Get(OrderRatingsRequest request) { var orderRatings = Dao.GetOrderRatingsByOrderId(request.OrderId); return(orderRatings); }
public Task RateOrder(OrderRatingsRequest orderRatingRequest) { return(Client.PostAsync <string>("/ratings/", orderRatingRequest, logger: Logger)); }