Exemplo n.º 1
0
        public void CanHaveManyComputeds()
        {
            var prefix = new Observable<string>("Before");

            var contacts = new ObservableList<Contact>(
                Enumerable.Range(0, 10000)
                    .Select(i => new Contact()
                    {
                        FirstName = "FirstName" + i,
                        LastName = "LastName" + i
                    }));

            var projections = new ComputedList<Projection>(() =>
                from c in contacts
                select new Projection(prefix, c));
            string dummy;
            foreach (var projection in projections)
                dummy = projection.Name;
            Assert.AreEqual("BeforeFirstName3LastName3", projections.ElementAt(3).Name);

            prefix.Value = "After";
            foreach (var projection in projections)
                dummy = projection.Name;
            Assert.AreEqual("AfterFirstName3LastName3", projections.ElementAt(3).Name);
        }
Exemplo n.º 2
0
        public void CanHaveManyComputeds()
        {
            var prefix = new Observable <string>("Before");

            var contacts = new ObservableList <Contact>(
                Enumerable.Range(0, 10000)
                .Select(i => new Contact()
            {
                FirstName = "FirstName" + i,
                LastName  = "LastName" + i
            }));

            var projections = new ComputedList <Projection>(() =>
                                                            from c in contacts
                                                            select new Projection(prefix, c));
            string dummy;

            foreach (var projection in projections)
            {
                dummy = projection.Name;
            }
            Assert.AreEqual("BeforeFirstName3LastName3", projections.ElementAt(3).Name);

            prefix.Value = "After";
            foreach (var projection in projections)
            {
                dummy = projection.Name;
            }
            Assert.AreEqual("AfterFirstName3LastName3", projections.ElementAt(3).Name);
        }
Exemplo n.º 3
0
 public void Initialize()
 {
     _model = new ContactList();
     _model.AddContact(new Contact() { FirstName = "Charles", LastName = "Babbage" });
     _model.AddContact(new Contact() { FirstName = "Alan", LastName = "Turing" });
     _contactViewModels = new ComputedList<ContactViewModel>(() =>
         from c in _model.Contacts
         select new ContactViewModel(c)
     );
 }
Exemplo n.º 4
0
 public MediaCacheService(
     CommuterApplication application,
     Func<Queue, MediaDownloader> createMediaDownloader)
 {
     var mediaDownloaders = new ComputedList<MediaDownloader>(() =>
         application.Root?.QueuedEpisodes.Select(e =>
             createMediaDownloader(e))
             .ToImmutableList() ?? ImmutableList<MediaDownloader>.Empty);
     var dowloadersToStart = new Computed<ImmutableList<MediaDownloader>>(() =>
         mediaDownloaders.Where(d => d.ShouldStart).ToImmutableList());
     _subscribeToStart = dowloadersToStart.Subscribe(StartDownloaders);
 }
Exemplo n.º 5
0
 public void Initialize()
 {
     _model = new ContactList();
     _model.AddContact(new Contact()
     {
         FirstName = "Charles", LastName = "Babbage"
     });
     _model.AddContact(new Contact()
     {
         FirstName = "Alan", LastName = "Turing"
     });
     _contactViewModels = new ComputedList <ContactViewModel>(() =>
                                                              from c in _model.Contacts
                                                              select new ContactViewModel(c)
                                                              );
 }
Exemplo n.º 6
0
        public void CanHaveManyPrecedents()
        {
            var contacts = new ObservableList<Contact>(
                Enumerable.Range(0, 10000)
                    .Select(i => new Contact()
                    {
                        FirstName = "FirstName" + i,
                        LastName = "LastName" + i
                    }));

            var sorted = new ComputedList<Contact>(() =>
                from c in contacts
                orderby c.FirstName, c.LastName
                select c);
            Assert.AreEqual("FirstName100", sorted.ElementAt(3).FirstName);

            sorted.ElementAt(3).FirstName = "George";
            Assert.AreEqual("FirstName1000", sorted.ElementAt(3).FirstName);
        }
Exemplo n.º 7
0
        public void CanHaveManyPrecedents()
        {
            var contacts = new ObservableList <Contact>(
                Enumerable.Range(0, 10000)
                .Select(i => new Contact()
            {
                FirstName = "FirstName" + i,
                LastName  = "LastName" + i
            }));

            var sorted = new ComputedList <Contact>(() =>
                                                    from c in contacts
                                                    orderby c.FirstName, c.LastName
                                                    select c);

            Assert.AreEqual("FirstName100", sorted.ElementAt(3).FirstName);

            sorted.ElementAt(3).FirstName = "George";
            Assert.AreEqual("FirstName1000", sorted.ElementAt(3).FirstName);
        }