public ProductItemsViewModel( IProductsProvider productsProvider, IProductsSearcher productsSearcher, IOrderBuilder orderBuilder, IPageNavigator pageNavigator) { Contract.Assert(productsProvider != null); Contract.Assert(orderBuilder != null); Contract.Assert(pageNavigator != null); _productsProvider = productsProvider; _productsSearcher = productsSearcher; _orderBuilder = orderBuilder; _pageNavigator = pageNavigator; SearchCommand = new LambdaCommand( parameter => { var searchResult = _productsSearcher.Search(SearchQuery); Products = searchResult.Select(CreateProductViewModel); }); GotoOrderCommand = new LambdaCommand( _ => { _pageNavigator.NavigateToOrderPage(new OrderViewModel(_orderBuilder.GetOrder(), _pageNavigator)); }); InitializeProducts(); }
public AddServicePageViewModel( IServicesManager servicesManager, INavigationService navigator) { _servicesManager = servicesManager; _navigator = navigator; Submit = new LambdaCommand( _ => { _servicesManager.AddServiceAsync( new ServiceInformation( string.IsNullOrEmpty(ServiceName) ? DefaultServiceName : ServiceName, new PasswordRestriction( CollectSymbolTypes(), PasswordMinLength, PasswordMaxLength))); _navigator.GoBack(); }); ServiceName = DefaultServiceName; PasswordMinLength = PasswordRestriction.DefaultMinLength; PasswordMaxLength = PasswordRestriction.DefaultMaxLength; AllowLowLatin = true; AllowUpperLatin = true; }
public ServicesPageViewModel( IServicesManager servicesManager, INavigationService navigationService, ISessionStateService sessionStateService) { Contract.Assert(servicesManager != null); Contract.Assert(navigationService != null); Contract.Assert(sessionStateService != null); _dispatcher = CoreWindow.GetForCurrentThread().Dispatcher; _servicesManager = servicesManager; _sessionStateService = sessionStateService; Services = new ObservableCollection<ServiceInformation>(); NavigateToService = new LambdaCommand( parameter => { Contract.Assert(parameter is ServiceInformation); if (_sessionStateService.SessionState.ContainsKey(nameof(ServiceInformation))) { _sessionStateService.SessionState.Remove(nameof(ServiceInformation)); } _sessionStateService.SessionState.Add(nameof(ServiceInformation), parameter); navigationService.Navigate(PageTokens.GeneratePassword, null); }); NavigateToAddService = new LambdaCommand(_ => navigationService.Navigate(PageTokens.AddService, null)); _servicesManager.ServicesUpdated += ResetServicesSync; ResetServicesSync(); }
public ProductViewModel(Product product, IOrderBuilder orderBuilder) { Contract.Assert(product != null); Contract.Assert(orderBuilder != null); _orderBuilder = orderBuilder; Product = product; AddToOrder = new LambdaCommand(parameter => _orderBuilder.AddProduct(Product)); }
public OrderViewModel( Order order, IPageNavigator pageNavigator) { Contract.Assert(order != null); Contract.Assert(pageNavigator != null); Order = order; GoBack = new LambdaCommand( _ => { pageNavigator.NavigateToProductsPage(); }); }
public GeneratePasswordPageViewModel( IServicesManager servicesManager, ISessionStateService sessionStateService, INavigationService navigationService) { Contract.Assert(sessionStateService != null); _sessionStateService = sessionStateService; _service = null; _servicePassword = null; GenerateServicePassword = new LambdaCommand( parameter => { var password = parameter as string; if (password?.Length > 0) { ServicePassword = ServicePasswordGenerator.GeneratePassword( Service, password); } }, _ => Service != null); CopyServicePassword = new LambdaCommand( _ => { _dataPackage.SetText(ServicePassword); Clipboard.SetContent(_dataPackage); }, _ => ServicePassword?.Length > 0); RemoveService = new LambdaCommand( _ => { servicesManager.RemoveServiceAsync(Service.UniqueToken); navigationService.GoBack(); }); }