private static SubscriptionHolder Deserialize(IReadOnlyDictionary <string, object> sd)
            {
                var instance = new SubscriptionHolder(sd.Get <int>(nameof(Value)));

                sd.ResolveReference <IDisposable>(nameof(Subscription), s => instance.Subscription = s);
                return(instance);
            }
        public void PinnedOperatorsAreNotGarbageCollected()
        {
            var storage = new InMemoryStorageEngine();

            var source      = new Source <int>();
            var valueHolder = new ValueHolder();

            var stream             = source.Do(valueHolder.SetValue).Pin();
            var subscriptionHolder = new SubscriptionHolder(stream);

            source.Emit(25);

            valueHolder.Value.ShouldBe(25);
            subscriptionHolder.Value.ShouldBe(25);

            var store = ObjectStore.New(storage);

            store.Entangle(source);
            store.Entangle(valueHolder);
            store.Entangle(subscriptionHolder);
            store.Persist();

            store              = ObjectStore.Load(storage, true, new MockScheduler());
            source             = store.Resolve <Source <int> >();
            valueHolder        = store.Resolve <ValueHolder>();
            subscriptionHolder = store.Resolve <SubscriptionHolder>();
            source.Emit(100);

            valueHolder.Value.ShouldBe(100);
            subscriptionHolder.Value.ShouldBe(100);

            subscriptionHolder.Subscription.Dispose();

            source.Emit(200);

            valueHolder.Value.ShouldBe(200);
            subscriptionHolder.Value.ShouldBe(100);

            store.Persist();

            store              = ObjectStore.Load(storage, true, new MockScheduler());
            source             = store.Resolve <Source <int> >();
            valueHolder        = store.Resolve <ValueHolder>();
            subscriptionHolder = store.Resolve <SubscriptionHolder>();
            source.Emit(300);

            valueHolder.Value.ShouldBe(300);
            subscriptionHolder.Value.ShouldBe(100);
        }
Example #3
0
        public ActionResult AddHolder()
        {
            CinemaViewModel model = (CinemaViewModel)TempData["model"];

            if (model == null)
            {
                model = new CinemaViewModel();
            }

            // Retrieve the input
            string email   = Request["email"];
            string address = Request["address"];
            string city    = Request["city"];

            // Check if the required fields have been filled in
            if (email == "" || address == "" || city == "")
            {
                return(RedirectToAction("NewHolder", "SubscriptionHolder",
                                        new { error = "Vul a.u.b. alle verplichte velden in" }));
            }

            var context = new EFDbContext();

            var newholder = new SubscriptionHolder()
            {
                Email   = email,
                Address = address,
                City    = city
            };

            context.SubscriptionHolders.Add(newholder);
            context.SaveChanges();


            return(RedirectToAction("NewHolder", "SubscriptionHolder",
                                    new { confirmation = "Uw gegevens zijn succesvol toegevoegd" }));
        }
        public SubscriptionHolder GetHolder(string email, List <SubscriptionHolder> holders)
        {
            SubscriptionHolder foundHolder = holders.Where(h => h.Email == email).ToList()[0];

            return(foundHolder);
        }