public static ViewModels.OrderViewModel ToOrderViewModel(this Models.OrderModel model) { if (model == null) { return(null); } var vm = new ViewModels.OrderViewModel() { CustomerUser = model.CustomerUser != null?model.CustomerUser.ToUserDataViewModel() : new UserDataViewModel(), StoreUser = model.StoreUser != null?model.StoreUser.ToUserDataViewModel() : new UserDataViewModel(), OrderIdentifier = model.OrderIdentifier, OrderState = model.OrderState, OrderType = model.OrderType, CreationDate = model.CreationDate, PaymentState = model.PaymentState, ShippingState = model.ShippingState, Items = new List <OrderItemViewModel>() }; foreach (var item in model.Items) { vm.Items.Add(item.ToOrderItemViewModel()); } return(vm); }
public MainViewModel() { navigationService = new NavigationService(); apiService = new ApiService(); Orders = new ObservableCollection <OrderViewModel>(); newOrder = new ViewModels.OrderViewModel(); LoadMenu(); LoadData(); }
public ViewModels.OrderViewModel ProcessOrder(ViewModels.OrderViewModel orderViewModel, bool SentFromStoreUser) { switch (orderViewModel.OrderState) { case Enums.EnumOrderState.Undef: //its a new order orderViewModel = orderRepository.AddOrder(orderViewModel.Items, orderViewModel.CustomerUser, orderViewModel.StoreUser); GlobalHost.ConnectionManager.GetHubContext <ServiceHub>().Clients.Clients( Utils.SignalRServiceUtils.JoinClientLists(orderViewModel.CustomerUser.SignalRConnections, orderViewModel.StoreUser.SignalRConnections) ).updateOrder(orderViewModel); break; case Enums.EnumOrderState.ClientPlacedOrder: //the item has been acknowledged from Server orderViewModel.OrderState = Enums.EnumOrderState.HostConfirmedOrder; orderRepository.UpdateOrderState(orderViewModel.OrderIdentifier, Enums.EnumOrderState.HostConfirmedOrder); GlobalHost.ConnectionManager.GetHubContext <ServiceHub>().Clients.Clients( Utils.SignalRServiceUtils.JoinClientLists(orderViewModel.CustomerUser.SignalRConnections, orderViewModel.StoreUser.SignalRConnections) ).updateOrder(orderViewModel); break; case Enums.EnumOrderState.HostConfirmedOrder: //the item has been receive-ack by client orderViewModel.OrderState = Enums.EnumOrderState.ClientOrderFinished; orderRepository.UpdateOrderState(orderViewModel.OrderIdentifier, Enums.EnumOrderState.ClientOrderFinished); GlobalHost.ConnectionManager.GetHubContext <ServiceHub>().Clients.Clients( Utils.SignalRServiceUtils.JoinClientLists(orderViewModel.CustomerUser.SignalRConnections, orderViewModel.StoreUser.SignalRConnections) ).updateOrder(orderViewModel); break; case Enums.EnumOrderState.ClientOrderFinished: break; case Enums.EnumOrderState.ServerOrderFinished: break; case Enums.EnumOrderState.Cancel: break; case Enums.EnumOrderState.Error: break; default: break; } return(orderViewModel); }
public ConfirmOrderPage() { InitializeComponent(); BindingContext = new ViewModels.OrderViewModel(); }
public ViewModels.OrderViewModel ProcessOrder(ViewModels.OrderViewModel orderViewModel, bool SentFromStoreUser) { switch (orderViewModel.OrderState) { case Enums.EnumOrderState.Undef: //its a new order orderViewModel = orderRepository.AddOrder(orderViewModel.Items, orderViewModel.CustomerUser, orderViewModel.StoreUser); GlobalHost.ConnectionManager.GetHubContext <ServiceHub>().Clients.Clients( Utils.SignalRServiceUtils.JoinClientLists(orderViewModel.CustomerUser.SignalRConnections, orderViewModel.StoreUser.SignalRConnections) ).updateOrder(orderViewModel); break; case Enums.EnumOrderState.ClientPlacedOrder: //the item has been acknowledged from Server if (SentFromStoreUser) { orderViewModel.OrderState = Enums.EnumOrderState.HostConfirmedOrder; orderRepository.UpdateOrderState(orderViewModel.OrderIdentifier, Enums.EnumOrderState.HostConfirmedOrder); //set payment to due orderViewModel.PaymentState = Enums.EnumPaymentState.IsDue; orderRepository.UpdatePaymentState(orderViewModel.OrderIdentifier, Enums.EnumPaymentState.IsDue); GlobalHost.ConnectionManager.GetHubContext <ServiceHub>().Clients.Clients( Utils.SignalRServiceUtils.JoinClientLists(orderViewModel.CustomerUser.SignalRConnections, orderViewModel.StoreUser.SignalRConnections) ).updateOrder(orderViewModel); } else { orderViewModel.ErrorMessage = "Wrong state .... should not happen..."; } break; case Enums.EnumOrderState.HostConfirmedOrder: if (SentFromStoreUser) { //store user launched shipping orderViewModel.ShippingState = Enums.EnumShippingState.Launched; orderRepository.UpdateShippingState(orderViewModel.OrderIdentifier, Enums.EnumShippingState.Launched); } else { //the item has been receive-ack by client orderViewModel.ShippingState = Enums.EnumShippingState.Delivered; orderRepository.UpdateShippingState(orderViewModel.OrderIdentifier, Enums.EnumShippingState.Delivered); orderViewModel.OrderState = Enums.EnumOrderState.ClientOrderFinished; orderRepository.UpdateOrderState(orderViewModel.OrderIdentifier, Enums.EnumOrderState.ClientOrderFinished); } GlobalHost.ConnectionManager.GetHubContext <ServiceHub>().Clients.Clients( Utils.SignalRServiceUtils.JoinClientLists(orderViewModel.CustomerUser.SignalRConnections, orderViewModel.StoreUser.SignalRConnections) ).updateOrder(orderViewModel); break; case Enums.EnumOrderState.ClientOrderFinished: break; case Enums.EnumOrderState.ServerOrderFinished: //payment has been processed in paymentcontroller, //send update to clients and hosts GlobalHost.ConnectionManager.GetHubContext <ServiceHub>().Clients.Clients( Utils.SignalRServiceUtils.JoinClientLists(orderViewModel.CustomerUser.SignalRConnections, orderViewModel.StoreUser.SignalRConnections) ).updateOrder(orderViewModel); break; case Enums.EnumOrderState.Cancel: break; case Enums.EnumOrderState.Error: break; default: break; } return(orderViewModel); }