コード例 #1
0
        public ModuleNodeViewModel(ViewTestClassesModule model)
        {
            // Setup initial conditions.
            this.model = model;
            classes = new ObservableCollectionWrapper<ViewTestClass, ClassNodeViewModel>(model.Classes, item => new ClassNodeViewModel(item));
            if (IsRecentSelections) IsOpen = true;

            // Create commands.
            RemoveCommand = new DelegateCommand<Button>(button => RemoveModule());
            ClickCommand = new DelegateCommand<Button>(button => { if (!IsLoading) IsOpen = !IsOpen; });

            // Wire up events.
            if (AssemblyModel != null)
            {
                AssemblyModel.AssemblyLoadStarted += delegate { LoadStart(); };
                AssemblyModel.AssemblyLoadComplete += delegate { LoadComplete(); };
            }
            model.PropertyChanged += (s, e) =>
                                         {
                                             if (e.PropertyName == ViewTestClassesModule.PropDisplayName)
                                             {
                                                 UpdateDisplayName();
                                                 OnPropertyChanged<T>(m => m.DisplayName);
                                             }
                                         };

            // Finish up.
            UpdateDisplayName();
        }
 public PropertyGridPrimitiveViewModel(ObservableCollection<PropertyModel> model)
 {
     this.model = model;
     properties = new ObservableCollectionWrapper<PropertyModel, PropertyViewModel>(
                                                                         model, 
                                                                          item => new PropertyViewModel(item));
 }
コード例 #3
0
        private IEnumerable <Point> BuildData(int dataSourceNumber)
        {
            ObservableCollectionWrapper <Point> collection = new ObservableCollectionWrapper <Point>(new ObservableCollection <Point>());

            FillCollection(dataSourceNumber, collection, startTime);

            return(collection);
        }
コード例 #4
0
		private IEnumerable<Point> BuildData(int dataSourceNumber)
		{
			ObservableCollectionWrapper<Point> collection = new ObservableCollectionWrapper<Point>(new ObservableCollection<Point>());

			FillCollection(dataSourceNumber, collection, startTime);

			return collection;
		}
コード例 #5
0
        /// <summary>Constructor.</summary>
        public SelectionListViewModel()
        {
            // Setup initial conditions.
            Items = new ObservableCollection<object>();
            ItemsWrapper = new ObservableCollectionWrapper<object, ItemViewModel>(Items, o => new ItemViewModel(this, o));
            templates = Templates.Instance.Dictionary;

            // Wire up events.
            Items.CollectionChanged += delegate { OnPropertyChanged<T>(m => m.IsItemsVisible); };
        }
コード例 #6
0
		private void FillCollection(int dataSourceNumber, ObservableCollectionWrapper<Point> collection, int time)
		{
			for (int i = 0; i < count; i++)
			{
				double x = i / (double)count;
				collection.Add(new Point(x, 0.1 * dataSourceNumber + 0.06 * Math.Sin(10 * x + Math.Sqrt(dataSourceNumber + 1) * 0.0005 * (time - startTime))));
			}

			if (time == startTime)
			{
				collections.Add(collection);
			}
		}
コード例 #7
0
        private void FillCollection(int dataSourceNumber, ObservableCollectionWrapper <Point> collection, int time)
        {
            for (int i = 0; i < count; i++)
            {
                double x = i / (double)count;
                collection.Add(new Point(x, 0.1 * dataSourceNumber + 0.06 * Math.Sin(10 * x + Math.Sqrt(dataSourceNumber + 1) * 0.0005 * (time - startTime))));
            }

            if (time == startTime)
            {
                collections.Add(collection);
            }
        }
コード例 #8
0
        public DisplayContainerViewModel(ViewTestClass model)
        {
            // Setup initial conditions.
            this.model = model;

            // Create wrapper collection.
            CurrentControls = new ObservableCollectionWrapper<object, DisplayItemViewModel>(
                                                model.CurrentControls,
                                                control => new DisplayItemViewModel(this, control as UIElement));

            // Wire up events.
            modelObserver = new PropertyObserver<ViewTestClass>(model)
                .RegisterHandler(m => m.CurrentViewTest, m => OnCurrentViewTestChanged());
        }
コード例 #9
0
        public SelectorPanelViewModel(RootViewModel parent)
        {
            // Setup initial conditions.
            this.parent = parent;
            model = TestHarnessModel.Instance;
            modules = new ObservableCollectionWrapper<ViewTestClassesModule, ModuleNodeViewModel>(model.Modules, item => new ModuleNodeViewModel(item));
            Strings = new StringLibrary();

            // Create commands.
            AddAssemblyCommand = new DelegateCommand<Button>(param => OnAddAssemblyClick());
            AutoRunTestsCommand = new DelegateCommand<Button>(param => OnAutoRunTestsClick());
            RunUnitTests = new DelegateCommand<Button>(param => OnRunUnitTests());

            // Wire up events.
            model.PropertyChanged += (sender, e) =>
                                         {
                                             if (e.PropertyName == TestHarnessModel.PropCurrentClass) UpdateTestSelectorModel();
                                         };
        }
        public void ShouldAddWrapperItemsInCorrectPosition()
        {
            var collectionA = new ObservableCollection<Model>();
            var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item));

            var item1 = new Model();
            var item2 = new Model();
            var item3 = new Model();

            collectionA.Add(item1);
            wrapper.Count.ShouldBe(1);
            wrapper[0].Source.ShouldBe(item1);
            wrapper.ContainsWrapper(item1).ShouldBe(true);

            collectionA.Add(item2);
            wrapper.Count.ShouldBe(2);
            wrapper[1].Source.ShouldBe(item2);
            wrapper.ContainsWrapper(item2).ShouldBe(true);

            collectionA.Insert(1, item3);
            wrapper.Count.ShouldBe(3);
            wrapper[1].Source.ShouldBe(item3);
            wrapper.ContainsWrapper(item3).ShouldBe(true);
        }
コード例 #11
0
        public async Task <ObservableCollectionWrapper <Facility> > GetFacilitiesVenue()
        {
            try
            {
                // HTTP GET
                var response = await client.GetAsync(String.Format("api/condos/{0}/condo-facilities?isActive=true&viewFormat=EXTMAX", GlobalConstants.WebApiCondoId));

                if (response.IsSuccessStatusCode)
                {
                    string data = await response.Content.ReadAsStringAsync();

                    var facilitiesResult = JsonConvert.DeserializeObject <GetFacilitiesResult>(data);

                    if (facilitiesResult == null ||
                        facilitiesResult.entities == null)
                    {
                        return(null);
                    }

                    var facilities = new ObservableCollectionWrapper <Facility>();

                    foreach (var entity in facilitiesResult.entities)
                    {
                        facilities.Add(entity);
                    }

                    return(facilities);
                }
            }
            catch (Exception ex)
            {
                return(null);
            }

            return(null);
        }
        public void ShouldWorkNormallyAfterClearing()
        {
            var collectionA = new ObservableCollection<Model> { new Model(), new Model(), new Model() };
            var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item));
            wrapper.AllowClearing = true;
            collectionA.Clear();

            // ---

            var item1 = new Model();
            var item2 = new Model();

            collectionA.Add(item1);
            wrapper.Count.ShouldBe(1);
            wrapper[0].Source.ShouldBe(item1);
            wrapper.ContainsWrapper(item1).ShouldBe(true);

            collectionA.Add(item2);
            wrapper.Count.ShouldBe(2);
            wrapper[1].Source.ShouldBe(item2);
            wrapper.ContainsWrapper(item2).ShouldBe(true);

            collectionA.Remove(item1);
            wrapper.Count.ShouldBe(1);
            wrapper[0].Source.ShouldBe(item2);
            wrapper.ContainsWrapper(item2).ShouldBe(true);
        }
        public void ShouldReportRemovedItems()
        {

            // Setup initial conditions.
            var item1 = new Model { Name = "One" };
            var collectionA = new ObservableCollection<Model>();
            var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item));

            // Wire up events.
            var events = new List<ObservableCollectionWrapperEventArgs<Model, ModelWrapper>>();
            wrapper.ItemRemoved += (s, e) => events.Add(e);

            // Setup collection.
            collectionA.Add(item1);
            var wrapper1 = wrapper.GetWrapper(item1);

            // Alter collection.
            collectionA.Remove(item1);

            // Ensure event fired.
            events.ElementAt(0).Source.ShouldBe(item1);
            events.ElementAt(0).Wrapper.ShouldBe(wrapper1);
        }
 public void ShouldExposeSourceCollection()
 {
     var collectionA = new ObservableCollection<Model>();
     var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item));
     wrapper.Source.ShouldBe(collectionA);
 }
 public void ShouldThrowWhenCreateWrapperPropertySetToNull()
 {
     var collectionA = new ObservableCollection<Model>();
     var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item));
     Should.Throw<ArgumentNullException>(() => wrapper.CreateWrapper = null);
 }
        public void ShouldBeAbleToChangeCreateWrapperFunction()
        {
            var wrapper1 = new ModelWrapper(new Model { Name = "One" });
            var wrapper2 = new ModelWrapper(new Model { Name = "Two" });

            var collectionA = new ObservableCollection<Model>();
            var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => wrapper1);

            collectionA.Add(wrapper1.Source);
            wrapper.Contains(wrapper1).ShouldBe(true);

            // ---

            wrapper.CreateWrapper = item => wrapper2;

            collectionA.Add(wrapper2.Source);
            wrapper.Contains(wrapper2).ShouldBe(true);
        }
        public void ShouldNotDisposeOfItemOnRemoval()
        {
            var item1 = new Model { Name = "One" };
            var item2 = new Model { Name = "Two" };
            var collectionA = new ObservableCollection<Model> { item1, item2 };
            var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item));

            wrapper.DisposeOfWrapperOnRemoval = false; // Turn off auto destruction of wrappers.

            var wrapped1 = wrapper.GetWrapper(item1);
            wrapped1.IsDisposed.ShouldBe(false);

            collectionA.Remove(item1);
            wrapped1.IsDisposed.ShouldBe(false);
        }
        public void ShouldReplaceWrapperItems()
        {
            var item1 = new Model { Name = "One" };
            var item2 = new Model { Name = "Two" };
            var item3 = new Model { Name = "Three" };
            var item4 = new Model { Name = "Four" };
            
            var collectionA = new ObservableCollection<Model> { item1, item2, item3 };
            var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item));
            wrapper.Count.ShouldBe(3);

            collectionA[1] = item4;
            wrapper[1].Source.ShouldBe(item4);

            collectionA[0] = item4;
            wrapper[0].Source.ShouldBe(item4);

            collectionA[2] = item4;
            wrapper[2].Source.ShouldBe(item4);
        }
コード例 #19
0
        public async Task <ObservableCollectionWrapper <TimeSlot> > GetTimeSlots(int facilityId, long fromTicks, long toTicks)
        {
            try
            {
                // First, try getting timeslots from cache
                ObjectCache cache    = MemoryCache.Default;
                string      cacheKey = string.Format(GlobalConstants.TimeSlotCacheKey,
                                                     facilityId,
                                                     fromTicks,
                                                     toTicks);

                if (cache.Contains(cacheKey))
                {
                    var result = (ObservableCollectionWrapper <TimeSlot>)cache.Get(cacheKey);

                    if (result != null && result.Count > 0)
                    {
                        return(result);
                    }
                }

                // HTTP GET
                var response = await client.GetAsync(String.Format("api/condos/{0}/condo-facilities/{1}/timeslots?from={2}&to={3}&viewFormat=EXTMAX", GlobalConstants.WebApiCondoId,
                                                                   facilityId,
                                                                   fromTicks,
                                                                   toTicks));

                if (response.IsSuccessStatusCode)
                {
                    string data = await response.Content.ReadAsStringAsync();

                    var timeslotsResult = JsonConvert.DeserializeObject <GetTimeslotsResult>(data);

                    if (timeslotsResult == null ||
                        timeslotsResult.entities == null)
                    {
                        return(null);
                    }

                    var timeslots = new ObservableCollectionWrapper <TimeSlot>();

                    foreach (var entity in timeslotsResult.entities)
                    {
                        timeslots.Add(entity);
                    }

                    // Store data in the cache
                    CacheItemPolicy cacheItemPolicy = new CacheItemPolicy();
                    cacheItemPolicy.AbsoluteExpiration = DateTime.Now.AddHours(1.0);
                    cache.Add(cacheKey, timeslots, cacheItemPolicy);

                    return(timeslots);
                }
            }
            catch (Exception ex)
            {
                return(null);
            }

            return(null);
        }
        public void ShouldAddWrapperItemsInCorrectPositionFromConstructor()
        {
            var list = new List<string> { "item1", "Clown", "item1", "Zebra", "apple", "item1", "apple" };

            var collectionA = new ObservableCollection<string>();
            collectionA.AddRange(list);

            collectionA[0].ShouldBe("item1");
            collectionA[1].ShouldBe("Clown");
            collectionA[2].ShouldBe("item1");
            collectionA[3].ShouldBe("Zebra");
            collectionA[4].ShouldBe("apple");
            collectionA[5].ShouldBe("item1");
            collectionA[6].ShouldBe("apple");

            var wrapper = new ObservableCollectionWrapper<string, StringWrapper>(collectionA, item => new StringWrapper(item));
            wrapper.Count.ShouldBe(7);

            wrapper[0].Source.ShouldBe(list[0]);
            wrapper[1].Source.ShouldBe(list[1]);
            wrapper[2].Source.ShouldBe(list[2]);
            wrapper[3].Source.ShouldBe(list[3]);
            wrapper[4].Source.ShouldBe(list[4]);
            wrapper[5].Source.ShouldBe(list[5]);
            wrapper[6].Source.ShouldBe(list[6]);
        }
 public void ShouldNotAllowClearingByDefault()
 {
     var collectionA = new ObservableCollection<Model> { new Model(), new Model(), new Model() };
     var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item));
     wrapper.AllowClearing.ShouldBe(false);
 }
 public void ShouldThrowWhenCleared()
 {
     var collectionA = new ObservableCollection<Model>();
     var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item));
     Should.Throw<NotSupportedException>(collectionA.Clear);
 }
        public void ShouldBeAbleToAddSameItemMultipleTimes()
        {
            var item1 = new Model();
            var collectionA = new ObservableCollection<Model> { item1, item1, item1 };
            var wrappersA = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item));

            wrappersA.GetSource(wrappersA[0]).ShouldBe(item1);
            wrappersA.GetSource(wrappersA[1]).ShouldBe(item1);
            wrappersA.GetSource(wrappersA[2]).ShouldBe(item1);

            wrappersA.GetWrapper(item1).ShouldBe(wrappersA[0]);
        }
 public void ShouldGetWrapper()
 {
     var item1 = new Model { Name = "One" };
     var item2 = new Model { Name = "Two" };
     var collectionA = new ObservableCollection<Model> { item1, item2};
     var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item));
     
     wrapper.GetWrapper(item2).ShouldBe(wrapper[1]);
     wrapper.GetWrapper(new Model()).ShouldBe(null);
     wrapper.GetWrapper(null).ShouldBe(null);
 }
        public void ShouldAddInitialItems()
        {
            var collectionA = new ObservableCollection<Model>{new Model(), new Model(), new Model()};
            var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item));
            wrapper.Count.ShouldBe(3);

            wrapper[0].Source.ShouldBe(collectionA[0]);
            wrapper[1].Source.ShouldBe(collectionA[1]);
            wrapper[2].Source.ShouldBe(collectionA[2]);
        }
        public void ShouldRemoveAll()
        {
            var collectionA = new ObservableCollection<Model>();
            var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item));

            collectionA.Add(new Model());
            collectionA.Add(new Model());
            collectionA.Add(new Model());
            wrapper.Count.ShouldBe(3);

            collectionA.RemoveAll();
            wrapper.Count.ShouldBe(0);
        }
コード例 #27
0
 public ModuleSelectorViewModel()
 {
     var model = TestHarnessModel.Instance;
     modules = new ObservableCollectionWrapper<ViewTestClassesModule, ModuleNodeViewModel>(model.Modules, item => new ModuleNodeViewModel(item));
 }
        public void ShouldRemoveStringWrapperItems()
        {
            var list = new List<string> { "item1", "Clown", "item1", "Zebra"};
            var collectionA = new ObservableCollection<string>();
            collectionA.AddRange(list);

            var wrappers = new ObservableCollectionWrapper<string, StringWrapper>(collectionA, item => new StringWrapper(item));
            wrappers.Count.ShouldBe(4);

            var wrapper1 = wrappers[0];
            var wrapper2 = wrappers[1];
            var wrapper3 = wrappers[2];
            var wrapper4 = wrappers[3];

            collectionA.RemoveAt(2);

            wrappers.Count.ShouldBe(3);
            wrappers.Contains(wrapper1).ShouldBe(true);
            wrappers.Contains(wrapper3).ShouldBe(false); // Should remove the 3rd item, not the 1st item (of the same string value).
        }
        public void ShouldBeDisposable()
        {
            var item1 = new Model();
            var collectionA = new ObservableCollection<Model> { item1};
            var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item));

            var wrappedModel = wrapper.GetWrapper(item1);

            wrapper.Dispose();
            wrappedModel.IsDisposed.ShouldBe(true);
        }
        public void ShouldRemoveWrapperItems()
        {
            var item1 = new Model { Name = "One" };
            var item2 = new Model { Name = "Two" };
            var item3 = new Model { Name = "Three" };
            var collectionA = new ObservableCollection<Model> { item1, item2, item3 };
            var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item));

            collectionA.Remove(item2);
            wrapper.Count.ShouldBe(2);
        }
        public void ShouldAllowClearing()
        {
            var collectionA = new ObservableCollection<Model> { new Model(), new Model(), new Model() };
            var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item));
            wrapper.Count.ShouldBe(3);

            wrapper.AllowClearing = true;
            collectionA.Clear();
            wrapper.Count.ShouldBe(0);
        }
        public void ShouldDisposeOfItemOnRemoval()
        {
            var item1 = new Model { Name = "One" };
            var item2 = new Model { Name = "Two" };
            var collectionA = new ObservableCollection<Model> { item1, item2};
            var wrapper = new ObservableCollectionWrapper<Model, ModelWrapper>(collectionA, item => new ModelWrapper(item));

            wrapper.DisposeOfWrapperOnRemoval.ShouldBe(true); // Default value.

            var wrapped1 = wrapper.GetWrapper(item1);

            collectionA.Remove(item1);
            wrapped1.IsDisposed.ShouldBe(true);
        }