public async Task <ActionResult> AddOrder() { var random = new Random().Next(1000); var id = Guid.NewGuid(); var orderServiceInvoker = new OrderServiceInvoker(); var orderCreated = await orderServiceInvoker.CallService(service => service.SendCommandAsync( new CreateOrderCommand() { ExpectedVersion = 1, Id = id, Address = "Address" + random, Description = "Description" + random, OrderItems = new List <SachaBarber.CQRS.Demo.Orders.DTOs.OrderItem>() { new SachaBarber.CQRS.Demo.Orders.DTOs.OrderItem() { OrderId = id, StoreItemId = Guid.NewGuid(), StoreItemDescription = "storeitem description", StoreItemUrl = "http://www.baidu.com" } } })); return(Redirect("Order")); }
private Task <bool> InitialiseReadModel() { return(Task.Run( async() => { try { var items = await orderServiceInvoker.CallService(service => service.GetAllStoreItemsAsync()); StoreItems.AddRange(items.Select(x => new StoreItemViewModel(x))); HasItems = StoreItems.Any(); return true; } catch (Exception e) { return false; } })); }
public async Task <ActionResult> Order() { var orderServiceInvoker = new OrderServiceInvoker(); var newOrders = orderServiceInvoker.CallService(service => service.GetAllOrdersAsync()); await Task.WhenAll(newOrders); Orders = newOrders.Result; return(View(Orders)); }
private async void ExecuteDeleteOrderCommand(object param) { try { operationInFlight = true; await orderServiceInvoker.CallService(service => service.SendCommandAsync(new DeleteOrderCommand() { ExpectedVersion = this.Order.Version, Id = this.Order.OrderId })); } catch (Exception e) { messageBoxService.ShowError("There was an error deleting the order"); } finally { operationInFlight = false; } }
public async Task <ActionResult> Index() { try { var orderServiceInvoker = new OrderServiceInvoker(); var newItems = orderServiceInvoker.CallService(service => service.GetAllStoreItemsAsync()); await Task.WhenAll(newItems); Items = newItems.Result; return(View(Items)); } catch (Exception ex) { throw ex; } }
public OrdersViewModel( IInterProcessBusSubscriber interProcessBusSubscriber, OrderServiceInvoker orderServiceInvoker, IMessageBoxService messageBoxService) { orderEvents = new List <string>() { "OrderCreatedEvent", "OrderAddressChangedEvent", "OrderDeletedEvent" }; growlNotifications.Top = SystemParameters.WorkArea.Top + topOffset; growlNotifications.Left = SystemParameters.WorkArea.Left + SystemParameters.WorkArea.Width - leftOffset; var stream = interProcessBusSubscriber.GetEventStream(); disposables.Add(stream .Do(x => { logger.Info("{0} in Rx stream", x); }) .Where(x => orderEvents.Contains(x)) .Subscribe(async x => { logger.Info("Refreshing orders on {0}", x); var newOrders = await orderServiceInvoker.CallService(service => service.GetAllOrdersAsync()); this.Orders = new List <OrderViewModel>( newOrders.Select(ord => new OrderViewModel(ord, messageBoxService, orderServiceInvoker))); this.HasOrders = Orders.Any(); if (this.HasOrders) { growlNotifications.AddNotification(new Notification { Title = "Orders changed", ImageUrl = "pack://application:,,,/Images/metroInfo.png", Message = "New/modified orders have been obtained from the ReadModel. Click on the right hand side panel to see them" }); } }) ); }
public OrdersViewModel( IInterProcessBusSubscriber interProcessBusSubscriber, OrderServiceInvoker orderServiceInvoker, IMessageBoxService messageBoxService) { orderEvents = new List<string>() { "OrderCreatedEvent","OrderAddressChangedEvent","OrderDeletedEvent" }; growlNotifications.Top = SystemParameters.WorkArea.Top + topOffset; growlNotifications.Left = SystemParameters.WorkArea.Left + SystemParameters.WorkArea.Width - leftOffset; var stream = interProcessBusSubscriber.GetEventStream(); disposables.Add(stream.Where(x => orderEvents.Contains(x)) .Subscribe(async x => { var newOrders = await orderServiceInvoker.CallService(service => service.GetAllOrdersAsync()); this.Orders = new List<OrderViewModel>( newOrders.Select(ord => new OrderViewModel(ord, messageBoxService, orderServiceInvoker))); this.HasOrders = Orders.Any(); if (this.HasOrders) { growlNotifications.AddNotification(new Notification { Title = "Orders changed", ImageUrl = "pack://application:,,,/Images/metroInfo.png", Message = "New/modified orders have been obtained from the ReadModel. Click on the right hand side panel to see them" }); } }) ); }
public OrdersViewModel() { orderServiceInvoker = new OrderServiceInvoker(); var newOrders = orderServiceInvoker.CallService(service => service.GetAllOrdersAsync()); }