Exemplo n.º 1
0
        public App()
        {
            InitializeComponent();

            StacheMeister Meister = new StacheMeister("memstache.demo", null, null, StashPlan.spSerializeCompress);
            string        key     = "app01_Test";

            string value = Meister[key]; //app just started, so fetching value from db cache, not memory

            //int rowcount;
            if (value != null)
            {
                //rowcount = Meister.DB.Delete<Stash>(key); //delete the record
                StashRepo.Delete(key);
            }

            Meister[key] = "This is a Test"; //Assign value to MemStache
            value        = Meister[key];     //will find value in memory cache, no need to check db cache

            //Now let's cache an Object
            Person user = new Person()
            {
                Name = "Dennis", Age = 44
            };

            key          = "App.User.Name";
            Meister[key] = user;                   //assign object to cache
            Person user2 = Meister[key] as Person; //the retrieved object is automatically deserialized.

            MainPage = new MainPage();
        }
Exemplo n.º 2
0
        public Stasher(
            string purpose,
            StashPlan plan,
            StashRepo db,
            IDataProtector dataProtector,
            IMemoryCache cache,
            MemoryCacheEntryOptions memoryItemOptions = null)
        {
            this.DB            = db;
            this.Cache         = cache;
            this.DataProtector = dataProtector;
            this.Purpose       = purpose;
            this.Plan          = plan;

            // If developer chooses to instantiate standalone Stasher then we will need to deal with
            // memItemOptions directly
            if (memoryItemOptions == null)
            {
                this.MemoryItemOptions = new MemoryCacheEntryOptions()
                {
                    AbsoluteExpirationRelativeToNow = TimeSpan.FromDays(1),
                    Size     = 921600, // bytes = 900 kb
                    Priority = CacheItemPriority.High,
                };
            }
            else
            {
                if (memoryItemOptions.Size == null)
                {
                    memoryItemOptions.Size = 921600;
                }

                this.MemoryItemOptions = memoryItemOptions;
            }
        }
Exemplo n.º 3
0
        public void _0_TestStasher()
        {
            string        key     = "test01";
            StacheMeister meister = new StacheMeister("memstache.demo");

            // var rowcount = Meister.DB.Delete<Stash>(key);
            StashRepo.Delete(key);
            Stasher stash = meister.MakeStasher("test", StashPlan.spSerialize);

            Console.WriteLine("MemStache Initialized: {0}", stash.Purpose);

            var payload = new Stash()
            {
                Key = key, Object = "This is a test"
            };

            var hash1 = Stasher.Hash(payload.Value);

            stash[key] = payload;

            payload.Value = string.Empty;

            payload = stash[key];

            Console.WriteLine("Payload Test: {0}", payload.Value);

            var hash2 = Stasher.Hash(payload.Value);

            Assert.AreEqual(hash1, hash2);
        }
Exemplo n.º 4
0
        public void _0_TestDBInsert_2()
        {
#pragma warning disable CS0219 // Variable is assigned but its value is never used
            string appId, filename, password;
#pragma warning restore CS0219 // Variable is assigned but its value is never used
            appId    = "memstache.demo";
            filename = "MemstacheTest.cv";
            password = "******";
            string key = "test02";

            StacheMeister meister = new StacheMeister("memstache.demo");
            //StacheMeister meister = new StacheMeister(appId, filename, password);

            // var rowcount = Meister.DB.Delete<Stash>(key);
            StashRepo.Delete(key);
            Stasher stash = meister.MakeStasher("test", StashPlan.spSerialize);
            string  s     = "another test";
            s = JsonConvert.SerializeObject(s);

            stash.DbAddOrUpdate(new Stash()
            {
                Key = key, Value = s, Serialized = true
            });

            // stash.DB.Insert(new Stash() { key = key,  value = s, serialized=true });
            Task.Delay(1000);
            Stash result = stash.DbGet(key);
            Console.WriteLine("Payload Test: {0}", result.Value);
        }
Exemplo n.º 5
0
        public void _6_StacheMeisterSerializeAndCompressAndEncrypt()
        {
            string        key     = "test08";
            StacheMeister meister = new StacheMeister("memstache.demo", null, null, StashPlan.spProtectCompress);

            // var rowcount = Meister.DB.Delete<Stash>(key);
            StashRepo.Delete(key);

            Employee emp1 = employee1; // CreateEmployee();
            string   v1   = JsonConvert.SerializeObject(emp1);

            meister[key] = emp1;

            Employee emp2 = meister[key] as Employee;

            string v2 = JsonConvert.SerializeObject(emp2);

            Assert.AreEqual(v1, v2);
        }
Exemplo n.º 6
0
        public void _4_StacheMeisterSerialization()
        {
            string        key     = "test06";
            StacheMeister meister = new StacheMeister("memstache.demo");

            // var rowcount = Meister.DB.Delete<Stash>(key);
            StashRepo.Delete(key);

            Employee emp1 = employee1; // CreateEmployee();
            string   v1   = JsonConvert.SerializeObject(emp1);

            meister[key] = emp1;

            Employee emp2 = meister[key] as Employee;

            string v2 = JsonConvert.SerializeObject(emp2);

            Assert.AreEqual(v1, v2);
        }
Exemplo n.º 7
0
        public void _0_InsertAndRetrieve()
        {
#pragma warning disable CS0219 // Variable is assigned but its value is never used
            string appId, filename, password;
#pragma warning restore CS0219 // Variable is assigned but its value is never used
            appId    = "memstache.demo";
            filename = "MemstacheTest.cv";
            password = "******";
            string key = "test02";

            StacheMeister meister = new StacheMeister("memstache.demo");
            //StacheMeister meister = new StacheMeister(appId, filename, password, StashPlan.spProtectCompress);

            // var rowcount = Meister.DB.Delete<Stash>(key);

            StashRepo.Delete(key);

            meister[key] = "testing01";

            // stash.DB.Insert(new Stash() { key = key,  value = s, serialized=true });
            Task.Delay(1).Wait();
            string result = meister[key];
            if (result != null)
            {
                Console.WriteLine("1st Payload Test: {0}", result); // result.Id.ToString());
            }

            meister[key] = "testing02";
            Task.Delay(1).Wait();
            result = meister[key];
            if (result != null)
            {
                Console.WriteLine("2nd Payload Test: {0}", result); // result.Id.ToString());
            }

            meister[key] = "testing03";
            Task.Delay(1).Wait();
            result = meister[key];
            if (result != null)
            {
                Console.WriteLine("3rd Payload Test: {0}", result); // result.Id.ToString());
            }
        }
Exemplo n.º 8
0
        public void _3_StasherSerializeAndCompressAndEncrypt()
        {
            string        key     = "test05";
            StacheMeister meister = new StacheMeister("memstache.demo");

            // var rowcount = Meister.DB.Delete<Stash>(key);
            StashRepo.Delete(key);
            Stasher stash = meister.MakeStasher("test", StashPlan.spProtectCompress);

            Console.WriteLine("MemStache Initialized: {0}", stash.Purpose);

            Valuation valuation1 = new Valuation();

            var payload = new Stash()
            {
                Key = key, StashPlan = StashPlan.spProtectCompress, Object = valuation1
            };
            var typeName = payload.StoredType;

            var hash1 = Stasher.Hash(payload.Value);

            stash[key] = payload;

            // payload.value = "";
            if (payload == null)
            {
                Console.WriteLine("Payload is nulls");
            }

            payload = stash[key];

            Valuation valuation2 = payload.Object as Valuation;

            Console.WriteLine("Payload Test: {0}", payload.Value);

            var hash2 = Stasher.Hash(payload.Value);

            Assert.AreEqual(hash1, hash2);
        }
Exemplo n.º 9
0
        public void _0_TestDBInsert()
        {
            string        key     = "test02";
            StacheMeister meister = new StacheMeister("memstache.demo");

            // var rowcount = Meister.DB.Delete<Stash>(key);
            StashRepo.Delete(key);
            Stasher stash = meister.MakeStasher("test", StashPlan.spSerialize);
            string  s     = "another test";

            s = JsonConvert.SerializeObject(s);

            stash.DbAddOrUpdate(new Stash()
            {
                Key = key, Value = s, Serialized = true
            });

            // stash.DB.Insert(new Stash() { key = key,  value = s, serialized=true });
            Task.Delay(1000);
            Stash result = stash.DbGet(key);

            Console.WriteLine("Payload Test: {0}", result.Value);
        }