public OrderViewModel(
            Order order, 
            IMessageBoxService messageBoxService, 
            OrderServiceInvoker orderServiceInvoker)
        {
            this.messageBoxService = messageBoxService;
            this.orderServiceInvoker = orderServiceInvoker;
            this.Order = order;

            this.GotoEditModeCommand = new SimpleCommand<object, object>(
                x => !this.IsEnabled,
                ExecuteGotoEditModeCommand
            );

            this.DeleteOrderCommand = new SimpleCommand<object, object>(
                x => !this.IsEnabled && !operationInFlight,
                ExecuteDeleteOrderCommand
            );

            this.CancelEditModeCommand = new SimpleCommand<object, object>(
                x => this.IsEnabled,
                ExecuteCancelEditModeCommand
            );

            this.ChangeOrderAddressCommand = new SimpleCommand<object, object>(
                x => this.IsEnabled && !operationInFlight,
                ExecuteChangeOrderAddressCommand
            );
        }
        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"));
        }
        public OrderViewModel(
            Order order,
            IMessageBoxService messageBoxService,
            OrderServiceInvoker orderServiceInvoker)
        {
            this.messageBoxService   = messageBoxService;
            this.orderServiceInvoker = orderServiceInvoker;
            this.Order = order;

            this.GotoEditModeCommand = new SimpleCommand <object, object>(
                x => !this.IsEnabled,
                ExecuteGotoEditModeCommand
                );

            this.DeleteOrderCommand = new SimpleCommand <object, object>(
                x => !this.IsEnabled && !operationInFlight,
                ExecuteDeleteOrderCommand
                );

            this.CancelEditModeCommand = new SimpleCommand <object, object>(
                x => this.IsEnabled,
                ExecuteCancelEditModeCommand
                );

            this.ChangeOrderAddressCommand = new SimpleCommand <object, object>(
                x => this.IsEnabled && !operationInFlight,
                ExecuteChangeOrderAddressCommand
                );
        }
        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));
        }
        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;
            }
        }
示例#6
0
        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 ShellViewModel(
            CreateOrderDialogViewModelFactory createOrderDialogViewModelFactory,
            IDialogService dialogService,
            OrderServiceInvoker orderServiceInvoker,
            IMessageBoxService messageBoxService,
            Func <OrdersViewModel> ordersViewModelFactory)
        {
            this.OrdersViewModel = ordersViewModelFactory();
            this.createOrderDialogViewModelFactory = createOrderDialogViewModelFactory;
            this.dialogService       = dialogService;
            this.orderServiceInvoker = orderServiceInvoker;
            this.messageBoxService   = messageBoxService;
            StoreItems = new ObservableCollection <StoreItemViewModel>();
            BindingOperations.EnableCollectionSynchronization(StoreItems, syncLock);

            CreateNewOrderCommand = new SimpleCommand <object, object>(
                CanExecuteCreateNewOrderCommand,
                ExecuteCreateNewOrderCommand);
        }
        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 ShellViewModel(
            CreateOrderDialogViewModelFactory createOrderDialogViewModelFactory,
            IDialogService dialogService,
            OrderServiceInvoker orderServiceInvoker,
            IMessageBoxService messageBoxService,
            Func<OrdersViewModel> ordersViewModelFactory)
        {


            this.OrdersViewModel = ordersViewModelFactory();
            this.createOrderDialogViewModelFactory = createOrderDialogViewModelFactory;
            this.dialogService = dialogService;
            this.orderServiceInvoker = orderServiceInvoker;
            this.messageBoxService = messageBoxService;
            StoreItems = new ObservableCollection<StoreItemViewModel>();
            BindingOperations.EnableCollectionSynchronization(StoreItems, syncLock);

            CreateNewOrderCommand = new SimpleCommand<object, object>(
                CanExecuteCreateNewOrderCommand,
                ExecuteCreateNewOrderCommand);

           
        }
示例#10
0
 public OrdersViewModel()
 {
     orderServiceInvoker = new OrderServiceInvoker();
     var newOrders = orderServiceInvoker.CallService(service => service.GetAllOrdersAsync());
 }