private void Run(OrderEventArgs e, OrderEventHandler handler) { if (handler != null) { handler(this, e); } }
public OrderService( IProductRepository productRepository, OrderEventHandler orderEventHandler, UpdateProductStatusCommandHandler updateProductStatusCommandHandler) { _productRepository = productRepository; _orderEventHandler = orderEventHandler; _updateProductStatusCommandHandler = updateProductStatusCommandHandler; }
public void Setup() { // 初始化会议数据库 using (var context = new ConferenceContext(this._dbName)) { if (context.Database.Exists()) { context.Database.Delete(); } context.Database.Create(); } // 模拟事件总线 this._busEvents = new List <IEvent>(); var busMock = new Mock <IEventBus>(); busMock.Setup(b => b.Publish(It.IsAny <Envelope <IEvent> >())) .Callback <Envelope <IEvent> >(e => this._busEvents.Add(e.Body)); busMock.Setup(b => b.Publish(It.IsAny <IEnumerable <Envelope <IEvent> > >())) .Callback <IEnumerable <Envelope <IEvent> > >(es => this._busEvents.AddRange(es.Select(e => e.Body))); this._service = new ConferenceService(busMock.Object, this._dbName); this._conference = new ConferenceInfo() { OwnerEmail = "*****@*****.**", OwnerName = "test owner", AccessCode = "qwerty", Name = "test conference", Description = "test conference description", Location = "redmond", Slug = "test", StartDate = DateTime.UtcNow, EndDate = DateTime.UtcNow.Add(TimeSpan.FromDays(2)), Seats = { new SeatType() { Name = "general", Description = "general description", Price = 100, Quantity = 10 } } }; this._service.CreateConference(this._conference); this._placed = new OrderPlaced() { ConferenceId = Guid.NewGuid(), SourceId = Guid.NewGuid(), AccessCode = "asdf" }; this._eventHandler = new OrderEventHandler(() => new ConferenceContext(_dbName)); this._eventHandler.Handle(_placed); }
public given_an_order() { placed = new OrderPlaced { ConferenceId = Guid.NewGuid(), SourceId = Guid.NewGuid(), AccessCode = "asdf" }; sut = new OrderEventHandler(() => new ConferenceContext()); sut.Handle(placed); }
public void Setup() { using (var context = new ConferenceContext(_dbName)) { if (context.Database.Exists()) { context.Database.Delete(); } context.Database.Create(); } this._eventHandler = new OrderEventHandler(() => new ConferenceContext(_dbName)); }
public given_no_order() { using (var context = new ConferenceContext(dbName)) { if (context.Database.Exists()) context.Database.Delete(); context.Database.Create(); } this.sut = new OrderEventHandler(() => new ConferenceContext(dbName)); }
public given_an_order() { this.placed = new OrderPlaced { ConferenceId = Guid.NewGuid(), SourceId = Guid.NewGuid(), AccessCode = "asdf", }; this.sut = new OrderEventHandler(() => new ConferenceContext(dbName)); this.sut.Handle(placed); }
public given_an_order() { this.placed = new OrderPlaced { ConferenceId = Guid.NewGuid(), SourceId = Guid.NewGuid(), AccessCode = "asdf", }; this.sut = new OrderEventHandler(() => new ConferenceContext(dbName)); this.sut.Handle(placed); }
public given_no_order() { using (var context = new ConferenceContext()) { if (context.Database.Exists()) { context.Database.Delete(); } context.Database.Create(); } sut = new OrderEventHandler(() => new ConferenceContext()); }
public static void Configura(Funq.Container container) { var context = new SampleContext(); var orderService = new OrderService { EventBus = new EventBus(), OrderRepository = new Repository<Order, SampleContext>(context), EventStoreRepository = new Repository<EventStore, SampleContext>(context), PayOrderRepository = new Repository<PayOrder, SampleContext>(context) }; var orderCommandHandler = new OrderCommandHandler { OrderService = orderService }; var orderEventHandler = new OrderEventHandler { OrderService = orderService }; container.Register<IOrderService>(c => orderService); container.Register<ICommandHandler<BuildOrder>>(c => orderCommandHandler); container.Register<IEventHandler<BuildOrderReady>>(c => orderEventHandler); container.Register<IEventHandler<PaySuccessReady>>(c => orderEventHandler); }
public void Test() { OrderView orderView = new OrderView(); var handler = new OrderEventHandler(orderView); handler.Handle(new OrderCreated(1.MakeGuid())); handler.Handle(new OrderLineAdded(1.MakeGuid(), new OrderLine(3, "MyProduct"))); var view = new OrderView(); view.GetAll().Single().ShouldBeEquivalentTo(new OrderDto() { Id = 1.MakeGuid(), OrderLines = new [] { new OrderLineDto() { Quantity = 3, ProductName = "MyProduct" } } }); }
public virtual void OnDeliveryError(OrderEventArgs e) { OrderEventHandler handler = DeliveryError; Run(e, handler); }
public virtual void OnContactDetailsError(OrderEventArgs e) { OrderEventHandler handler = ContactDetailsError; Run(e, handler); }
public virtual void OnContactDetailsCreated(OrderEventArgs e) { OrderEventHandler handler = ContactDetailsCreated; Run(e, handler); }
public virtual void OnPaymentCreated(OrderEventArgs e) { OrderEventHandler handler = PaymentCreated; Run(e, handler); }
public OrderEventHandlerTests() { _state = new State(); _handler = new OrderEventHandler(_state); }
/// <exception cref="OverflowException">The dictionary already contains the maximum number of elements, <see cref="F:System.Int32.MaxValue" />.</exception> /// <exception cref="NotSupportedException">Condition. </exception> public void HandleRequest(Request request) { switch (request.RequestType) { case "NEWS": if (!String.IsNullOrEmpty(request.Parameters)) { var listenerNewsHeadlines = _streamingClient.BuildNewsHeadlinesListener(request.UserName, request.SessionToken, request.Parameters); var newsEventHandler = new NewsEventHandler(listenerNewsHeadlines); if (!_subscriptions.TryAdd(request, newsEventHandler)) { _logger.Error("Can't subscribe to NEWS datafeed"); } } _logger.Error("Can't subscribe to NEWS datafeed. News category wasn't provided"); break; case "PRICES": var splitted = request.Parameters.Split(new[] { "." }, StringSplitOptions.RemoveEmptyEntries); if (splitted.Any()) { var listenerPrices = _streamingClient.BuildPricesListener(request.UserName, request.SessionToken, splitted); var priceEventHandler = new PriceEventHandler(listenerPrices); if (!_subscriptions.TryAdd(request, priceEventHandler)) { _logger.Error("Can't subscribe to PRICES datafeed"); } } _logger.Error("Can't subscribe to PRICES datafeed. Market ids weren't provided."); break; case "QUOTES": var listenerQuotes = _streamingClient.BuildQuotesListener(request.UserName, request.SessionToken); var quoteEventHandler = new QuoteEventHandler(listenerQuotes); if (!_subscriptions.TryAdd(request, quoteEventHandler)) { _logger.Error("Can't subscribe to QUOTES datafeed"); } break; case "CLIENTACCOUNTMARGIN": var listenerClientAccountMargin = _streamingClient.BuildClientAccountMarginListener(request.UserName, request.SessionToken); var clientAccountMarginEventHandler = new ClientAccountMarginEventHandler(listenerClientAccountMargin); if (!_subscriptions.TryAdd(request, clientAccountMarginEventHandler)) { _logger.Error("Can't subscribe to CLIENTACCOUNTMARGIN datafeed"); } break; case "ORDERS": var listenerOrders = _streamingClient.BuildOrdersListener(request.UserName, request.SessionToken); var orderEventHandler = new OrderEventHandler(listenerOrders); if (!_subscriptions.TryAdd(request, orderEventHandler)) { _logger.Error("Can't subscribe to ORDERS datafeed"); } break; case "DEFAULTPRICES": if (!String.IsNullOrEmpty(request.Parameters)) { int accountOperatorId; Int32.TryParse(request.Parameters, out accountOperatorId); if (accountOperatorId != 0) { var listenerDefaultPrices = _streamingClient.BuildDefaultPricesListener(request.UserName, request.SessionToken, accountOperatorId); var priceEventHandler = new PriceEventHandler(listenerDefaultPrices); if (!_subscriptions.TryAdd(request, priceEventHandler)) { _logger.Error("Can't subscribe to DEFAULTPRICES datafeed"); } } _logger.Error("Can't subscribe to DEFAULTPRICES datafeed. Can't parse account operator Id."); } else { _logger.Error("Can't subscribe to DEFAULTPRICES datafeed. Account operator Id wasn't provided."); } break; case "TRADEMARGIN": var listenerTradeMargin = _streamingClient.BuildTradeMarginListener(request.UserName, request.SessionToken); var tradeMarginEventHandler = new TradeMarginEventHandler(listenerTradeMargin); if (!_subscriptions.TryAdd(request, tradeMarginEventHandler)) { _logger.Error("Can't subscribe to TRADEMARGIN datafeed"); } break; case "TRADINGACCOUNTMARGIN": var listenerTradingAccountMargin = _streamingClient.BuildTradingAccountMarginListener(request.UserName, request.SessionToken); var tradingAccountMarginEventHandler = new TradingAccountMarginEventHandler(listenerTradingAccountMargin); if (!_subscriptions.TryAdd(request, tradingAccountMarginEventHandler)) { _logger.Error("Can't subscribe to TRADINGACCOUNTMARGIN datafeed"); } break; default: throw new NotSupportedException(); } }
public virtual void OnPaymentError(OrderEventArgs e) { OrderEventHandler handler = PaymentError; Run(e, handler); }
public virtual void OnDeliveryCreated(OrderEventArgs e) { OrderEventHandler handler = DeliveryCreated; Run(e, handler); }
public virtual void OnOrderSuccess(OrderEventArgs e) { OrderEventHandler handler = OrderSuccess; Run(e, handler); }
public virtual void OnOrderFailed(OrderEventArgs e) { OrderEventHandler handler = OrderFailed; Run(e, handler); }