public async Task Consume_SubscriptionExistAndNoMember_Created() { var sub = new ClubSubscription() { ClubId = Guid.NewGuid(), ClubSubscriptionId = Guid.NewGuid() }; using (var context = _factory.CreateContext()) { context.ClubSubscriptions.Add(sub); context.SaveChanges(); } var @event = new SignUpSubscriptionSuccessEvent() { ClubSubscriptionId = sub.ClubSubscriptionId, UserId = Guid.NewGuid() }; await SendEvent(@event); using (var context = _factory.CreateContext()) { Assert.That(context.ClubMembers.Count(), Is.EqualTo(1)); var memberDb = context.ClubMembers.Find(@event.UserId, sub.ClubId); Assert.That(memberDb, Is.Not.Null); Assert.That(memberDb.ClubSubscriptionId, Is.EqualTo(sub.ClubSubscriptionId)); } await _publishEndpoint.Received(1).Publish(Arg.Any <ClubMemberCreatedEvent>()); await _publishEndpoint.Received(0).Publish(Arg.Any <ClubMemberUpdatedEvent>()); }
public async Task <IActionResult> Index() { var json = await new StreamReader(HttpContext.Request.Body).ReadToEndAsync(); Log.Information(json); try { var stripeEvent = EventUtility.ParseEvent(json); if (stripeEvent.Type == Stripe.Events.PaymentIntentSucceeded) { var paymentIntent = stripeEvent.Data.Object as PaymentIntent; if (paymentIntent.Metadata.Count == 2) { var e = new SignUpEventSuccessEvent() { UserId = new Guid(paymentIntent.Metadata["UserId"]), EventId = new Guid(paymentIntent.Metadata["EventId"]) }; Log.Information("User: "******" signed up to eventId: " + e.EventId); await _eventService.SaveEventAndDbContextChangesAsync(e); await _eventService.PublishEventAsync(e); } } else if (stripeEvent.Type == Stripe.Events.CustomerSubscriptionCreated) { var sub = stripeEvent.Data.Object as Subscription; if (sub.Metadata.Count == 2) { var e = new SignUpSubscriptionSuccessEvent() { UserId = new Guid(sub.Metadata["UserId"]), ClubSubscriptionId = new Guid(sub.Metadata["ClubSubscriptionId"]) }; Log.Information("User: "******" signed up to subscription: " + e.ClubSubscriptionId); await _eventService.SaveEventAndDbContextChangesAsync(e); await _eventService.PublishEventAsync(e); } } else { Console.WriteLine("Unhandled event type: {0}", stripeEvent.Type); } return(Ok()); } catch { } return(BadRequest()); }
public async Task Consume_SubscriptionMustExist_DoesNothing() { var @event = new SignUpSubscriptionSuccessEvent() { ClubSubscriptionId = Guid.NewGuid(), UserId = Guid.NewGuid() }; await SendEvent(@event); await _publishEndpoint.Received(0).Publish(Arg.Any <ClubMemberCreatedEvent>()); await _publishEndpoint.Received(0).Publish(Arg.Any <ClubMemberUpdatedEvent>()); }
public async Task <IActionResult> subCheat(SubCheatRequest request) { var e = new SignUpSubscriptionSuccessEvent() { UserId = request.UserId, ClubSubscriptionId = request.ClubSubscriptionId }; Log.Information("User: "******" signed up to subscription: " + e.ClubSubscriptionId); await _eventService.SaveEventAndDbContextChangesAsync(e); await _eventService.PublishEventAsync(e); return(Ok()); }