Exemplo n.º 1
0
        private Repository()
        {
            MemoryCache          = GetStorageProvider("OverrideLocalStorageProvider", () => { return(new MemoryCache <TYPE>(QueueChange)); });
            SharedCache          = GetStorageProvider("OverrideSharedStorageProvider", () => { return(new DistributedSharedCache <TYPE>()); });
            LongTermStorageCache = GetStorageProvider("OverrideLongTermStorageProvider", () => { return(new FileSystemCache <TYPE>()); });

            if (MemoryCache is MemoryCache <TYPE> )
            {
                ChangeQueue = new Dictionary <string, List <TYPE> >();

                SaveTimer          = new Timer(30000);
                SaveTimer.Elapsed += new ElapsedEventHandler((x, y) =>
                {
                    SaveTimer.Enabled = false;
                    try
                    {
                        SaveQueue();
                    }
                    catch { }
                    SaveTimer.Enabled = true;
                });
                SaveTimer.Start();

                RefreshTimer          = new Timer(300000);
                RefreshTimer.Elapsed += new ElapsedEventHandler((x, y) =>
                {
                    RefreshTimer.Enabled = false;
                    try
                    {
                        if (RefreshData != null)
                        {
                            var keys = (MemoryCache as MemoryCache <TYPE>).Keys;
                            foreach (var key in keys)
                            {
                                var newData = RefreshData(key);
                                if (newData != null)
                                {
                                    Save(key, newData);
                                }
                            }
                        }
                    }
                    catch { }
                    RefreshTimer.Enabled = true;
                });
                RefreshTimer.Start();
            }
        }
Exemplo n.º 2
0
 public SimpleRepository <TYPE> SetProvider(RepositoryStorageProvider <TYPE> provider)
 {
     Storage = provider;
     return(this);
 }
Exemplo n.º 3
0
 public SimpleRepository(string providerKey)
 {
     Storage = GetStorageProvider("StorageProvider", providerKey, () => { return(new FileSystemCache <TYPE>(providerKey)); });
 }