public void ValidateStartingIndexOnAddRangeTest()
        {
            var collection = new MvxObservableCollection <string>();
            var newItems   = new[] { "Bar", "Baz", "Herp", "Derp" };

            NotifyCollectionChangedEventHandler handler = (s, a) =>
            {
                Assert.Equal(0, a.NewStartingIndex);
                Assert.Equal(newItems.Length, a.NewItems.Count);
                Assert.Null(a.OldItems);
            };

            collection.CollectionChanged += handler;

            collection.AddRange(newItems);
            var newStartIndex = collection.Count;

            collection.CollectionChanged -= handler;

            handler = (s, a) => {
                Assert.Equal(newStartIndex, a.NewStartingIndex);
                Assert.Equal(newItems.Length, a.NewItems.Count);
            };

            collection.CollectionChanged += handler;

            collection.AddRange(newItems);
        }
예제 #2
0
        private async Task PopulateProducts()
        {
            try
            {
                List <Product> products = await _productService.GetProducts();

                Products.Clear();
                Products.AddRange(products);
            }
            catch (Exception exception)
            {
                System.Diagnostics.Debug.WriteLine(exception.Message);
            }
        }
        public void AddRangeSuppressesChangesTest()
        {
            var collection  = new MvxObservableCollection <string>();
            var invokeCount = 0;

            collection.CollectionChanged += (s, e) =>
            {
                invokeCount++;
            };

            collection.Add("Foo");

            Assert.Equal(1, invokeCount);
            Assert.Contains("Foo", collection);

            var newItems = new[] { "Bar", "Baz", "Herp", "Derp" };

            collection.AddRange(newItems);

            Assert.Equal(2, invokeCount);

            foreach (var item in newItems)
            {
                Assert.Contains(item, collection);
            }
        }
예제 #4
0
        async Task LoadHistoryAsync()
        {
            try
            {
                IsBusy = true;

                var result = await paymentProcessing.GetPayHistoryAsync(GetPayDateFrom, GetPayDateTo);

                if (result != null)
                {
                    isPayHistoryAwailableForUser = true;
                    History.AddRange(result);
                }
                else
                {
                    await Mvx.Resolve <IUserInteraction>().AlertAsync("Sorry, there is no pay history for now.", "Error");
                }
            }
            catch (NullReferenceException ex)
            {
                Debug.WriteLine(ex.Message);
                await Mvx.Resolve <IUserInteraction>().AlertAsync("Sorry, there is no pay history for now.", "Error");
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }
            finally
            {
                IsBusy = false;
            }
        }
        public void AddRangeIsAddActionTest()
        {
            var collection = new MvxObservableCollection <string>();

            collection.CollectionChanged += (s, e) => {
                Assert.Equal(NotifyCollectionChangedAction.Add, e.Action);
            };
            collection.AddRange(new[] { "Bar", "Baz", "Herp", "Derp" });
        }
        protected override MvxObservableCollection <Recipe> Convert(
            Dictionary <int, MvxObservableCollection <Recipe> > value, Type targetType, object parameter,
            CultureInfo culture)
        {
            var conjuctionList = new MvxObservableCollection <Recipe>(value[0]);

            conjuctionList.AddRange(value[1]);
            return(new MvxObservableCollection <Recipe>(conjuctionList));
        }
        protected async Task LoadContent()
        {
            CanGoNext = false;

            Loading = true;

            var userTask     = UserViewModel.LoadContent();
            var deliveryTask = DeliveryViewModel.LoadContent();

            await Task.WhenAll(userTask, deliveryTask);

            var dataSource = new MvxObservableCollection <IMvxViewModel>();

            dataSource.AddRange(UserViewModel.Items);
            dataSource.AddRange(DeliveryViewModel.Items);
            Items = dataSource;

            CanGoNext = true;

            Loading = false;

            DeliveryViewModel.PropertyChanged += DeliveryViewModel_PropertyChanged;
        }
예제 #8
0
        private async Task PopulateCategories()
        {
            try
            {
                List <Category> categories = await _categoryService.GetCategories();

                Categories.Clear();
                Categories.AddRange(categories);
            }
            catch (Exception exception)
            {
                System.Diagnostics.Debug.WriteLine(exception.Message);
            }
        }
예제 #9
0
        public TableViewModel(IMvxNavigationService navigationService, IDataBaseService dataBaseService) : base(navigationService, dataBaseService)
        {
            _dataBaseService   = dataBaseService;
            _navigationService = navigationService;

            _items = new MvxObservableCollection <Item>();
            _items.Clear();

            _items.AddRange(dataBaseService.GetAllItems().ToList());

            ItemSelectedCommand  = new MvxAsyncCommand <Item>(ItemSelected);
            RefreshTableCommand  = new MvxAsyncCommand(RefreshTable);
            CreateNewItemCommand = new MvxAsyncCommand(CreateNewItem);
        }
            public void CollectionShouldBeUpdated(params int[][] newItems)
            {
                Setup();

                var items     = new MvxObservableCollection <int[]>(new[] { new[] { 1, 2 }, new[] { 3 } });
                var flatItems = GetFlatItems(newItems);
                var flatCount = GetFlatItems(items).Count() + flatItems.Count();

                var sut = new FlatObservableCollection <int>(items);

                items.AddRange(newItems);

                Assert.AreEqual(flatCount, sut.Count);
                Assert.AreEqual(flatItems, sut.TakeLast(newItems.Length));
            }
            public void CollectionShouldBeUpdated(params int[] newItems)
            {
                Setup();

                var items = new MvxObservableCollection <int> {
                    1, 2, 3
                };
                var index = items.Count;

                var sut = new WrappedObservableCollection <int, string>(items, Factory);

                items.AddRange(newItems);

                Assert.AreEqual(items.Count, sut.Count);
                Assert.AreEqual(Transform(newItems), sut.Take(index, newItems.Length));
            }
예제 #12
0
        private async void LoadDataAsync()
        {
            try
            {
                NotPayedTrips = new MvxObservableCollection <IQueueItem>();
                var getTrips = await paymentProcessing.GetNotPayedTripsAsync();

                if (getTrips != null)
                {
                    NotPayedTrips.AddRange(getTrips?.Trips);
                    Amount = getTrips?.Amount;
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message, ex.StackTrace);
                await Mvx.Resolve <IUserInteraction>().AlertAsync(ex.Message, "Error");
            }
        }
            public void AddEventShouldBeRaised(params int[][] newItems)
            {
                Setup();

                var events    = new List <NotifyCollectionChangedEventArgs>();
                var items     = new MvxObservableCollection <int[]>(new[] { new[] { 1, 2 }, new[] { 3 } });
                var flatIndex = GetFlatSectionIndex(items, items.Count);
                var flatItems = GetFlatItems(newItems);

                var sut = new FlatObservableCollection <int>(items);

                sut.CollectionChanged += (_, args) => events.Add(args);

                items.AddRange(newItems);

                Assert.AreEqual(1, events.Count);
                Assert.AreEqual(NotifyCollectionChangedAction.Add, events[0].Action);
                Assert.AreEqual(flatIndex, events[0].NewStartingIndex);
                Assert.AreEqual(flatItems, events[0].NewItems);
            }
            public void AddEventShouldBeRaised(params int[] newItems)
            {
                Setup();

                var events = new List <NotifyCollectionChangedEventArgs>();
                var items  = new MvxObservableCollection <int> {
                    1, 2, 3
                };
                var index = items.Count;

                var sut = new WrappedObservableCollection <int, string>(items, Factory);

                sut.CollectionChanged += (_, args) => events.Add(args);

                items.AddRange(newItems);

                Assert.AreEqual(1, events.Count);
                Assert.AreEqual(NotifyCollectionChangedAction.Add, events[0].Action);
                Assert.AreEqual(index, events[0].NewStartingIndex);
                Assert.AreEqual(Transform(newItems), events[0].NewItems);
            }
        public void AddRangeThrowsArgumentNullExceptionOnNullInput()
        {
            var collection = new MvxObservableCollection <string>();

            Assert.Throws <ArgumentNullException>(() => collection.AddRange(null));
        }
예제 #16
0
 public static void ReplaceRange <T>(this MvxObservableCollection <T> collection, IEnumerable <T> enumerable)
 {
     collection.Clear();
     collection.AddRange(enumerable);
 }