示例#1
0
        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)));
        }
示例#4
0
        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));
 }