public void Handle(OrderRated @event) { using (var context = _contextFactory.Invoke()) { context.Set <OrderRatingDetails>().Add(new OrderRatingDetails { Id = Guid.NewGuid(), AccountId = @event.AccountId, OrderId = @event.SourceId, Note = @event.Note, }); foreach (var ratingScore in @event.RatingScores) { context.Set <RatingScoreDetails>().Add(new RatingScoreDetails { Id = Guid.NewGuid(), OrderId = @event.SourceId, Score = ratingScore.Score, RatingTypeId = ratingScore.RatingTypeId, Name = ratingScore.Name }); } var order = context.Find <OrderDetail>(@event.SourceId); order.IsRated = true; context.SaveChanges(); } }
public void RefreshOrderStatus(OrderRated orderRated) { if (orderRated.Content == OrderId) { HasRated = true; } }
public void when_order_rated_then_order_dto_populated() { var orderRated = new OrderRated { AccountId = _accountId, SourceId = _orderId, Note = "Note", RatingScores = new List <RatingScore> { new RatingScore { RatingTypeId = Guid.NewGuid(), Score = 1 }, new RatingScore { RatingTypeId = Guid.NewGuid(), Score = 2 } } }; Sut.Handle(orderRated); using (var context = new BookingDbContext(DbName)) { var orderRatingDetailsDto = context.Query <OrderRatingDetails>().SingleOrDefault(o => o.OrderId == _orderId); Assert.NotNull(orderRatingDetailsDto); Assert.That(orderRatingDetailsDto.Note, Is.EqualTo(orderRated.Note)); var ratingScoreDetailsDto = context.Query <RatingScoreDetails>().Where(s => s.OrderId == _orderId).ToList(); Assert.That(ratingScoreDetailsDto.Count, Is.EqualTo(2)); var x1 = orderRated.RatingScores.Single(x => x.RatingTypeId == ratingScoreDetailsDto.First().RatingTypeId); Assert.That(ratingScoreDetailsDto.First().Score, Is.EqualTo(x1.Score)); var x2 = orderRated.RatingScores.Single( x => x.RatingTypeId == ratingScoreDetailsDto.ElementAt(1).RatingTypeId); Assert.That(ratingScoreDetailsDto.ElementAt(1).Score, Is.EqualTo(x2.Score)); } }
public void Handle(OrderRated @event) { using (var context = _contextFactory.Invoke()) { var orderReport = context.Find <OrderReportDetail>(@event.SourceId); var rating = new Dictionary <string, string>(); foreach (var ratingScore in @event.RatingScores) { if (!rating.ContainsKey(ratingScore.Name)) { rating.Add(ratingScore.Name, ratingScore.Score.ToString()); } } orderReport.Rating = JsonSerializer.SerializeToString(rating); context.SaveChanges(); } }
public void when_rating_twice_order_get_error() { var orderRated = new OrderRated { SourceId = _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" } } }; var rateOrder2 = new RateOrder { AccountId = _accountId, 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" } } }; _sut.Given(orderRated); _sut.When(rateOrder2); Assert.AreEqual(0, _sut.Events.Count); }
private void OnOrderRated(OrderRated obj) { // allows old non-working ratings from being re-rated _isRated = obj.RatingScores.Any(); }