コード例 #1
0
 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));
 }
コード例 #2
0
 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);
 }
コード例 #3
0
        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);
        }