private bool Filter(SelectableWrapper <ProductModel> item) { if (item == null) { return(false); } if (string.IsNullOrWhiteSpace(FilterText)) { return(true); } return(item.Model.Name.SafeContains(FilterText) || item.Model.Description.SafeContains(FilterText)); }
protected override void OnEntityInitialized() { DisplayName = IsNewRecord ? UiResources.OrderNewDisplayName : UiResources.OrderEditDisplayName; _initializedTask = _repository .GetProductsAsync(DisposeCancellationToken) .TryExecuteSynchronously(task => { foreach (ProductModel productModel in task.Result) { var item = new SelectableWrapper <ProductModel>(false, productModel); if (_oldLinks != null) { item.IsSelected = _oldLinks.ContainsKey(productModel.Id); } item.PropertyChanged += _propertyChangedEventHandler; GridViewModel.OriginalItemsSource.Add(item); } }) .WithBusyIndicator(this); }
public void VmShouldRemoveOldLinksUnselected() { var models = new[] { new ProductModel { Id = Guid.NewGuid() }, new ProductModel { Id = Guid.NewGuid() }, new ProductModel { Id = Guid.NewGuid() } }; var oldLinks = new[] { new OrderProductModel { IdProduct = models[0].Id } }; InitializeRepository(models); var model = new OrderModel { Name = "test", Id = Guid.NewGuid(), }; var viewModel = GetViewModel <OrderEditorViewModel>(); viewModel.InitializeEntity(model, oldLinks); SelectableWrapper <ProductModel> oldItem = viewModel.GridViewModel.OriginalItemsSource.Single(wrapper => wrapper.Model == models[0]); Assert.IsTrue(oldItem.IsSelected); oldItem.IsSelected = false; IList <IEntityStateEntry> changes = viewModel.ApplyChanges(); Assert.AreEqual(changes.Single(entry => entry.Entity is OrderModel).Entity, model); IEntityStateEntry oldLinkEntry = changes.Single(entry => entry.Entity is OrderProductModel); Assert.AreEqual(oldLinkEntry.State, EntityState.Deleted); Assert.AreEqual(((OrderProductModel)oldLinkEntry.Entity).IdProduct, models[0].Id); }