public ProviderDataTypeItem <IEnumerable> LoadDataTypeFromSource(string key, DistributedDataType dataType) { IEnumerable value = null; ProviderDataTypeItem <IEnumerable> dataTypeItem = null; switch (dataType) { case DistributedDataType.List: value = new List <object>() { LoadFromDataSource(key) }; dataTypeItem = new ProviderDataTypeItem <IEnumerable>(value); break; case DistributedDataType.Dictionary: value = new Dictionary <string, object>() { { key, LoadFromDataSource(key) } }; dataTypeItem = new ProviderDataTypeItem <IEnumerable>(value); break; case DistributedDataType.Counter: dataTypeItem = new ProviderDataTypeItem <IEnumerable>(1000); break; } return(dataTypeItem); }
/// <summary> /// Responsible for loading data structures from the external data source. /// </summary> /// <param name="key">key to fetch from data source</param> /// <param name="dataType">type of data structure received</param> /// <returns>Data structure contained in ProviderCacheItem which can be enumerated</returns> public ProviderDataTypeItem <IEnumerable> LoadDataTypeFromSource(string key, DistributedDataType dataType) { // initialize ProviderDataTypeItem to return ProviderDataTypeItem <IEnumerable> providerItem = null; // create a switch to handle different Data Structures switch (dataType) { // incase of counter, the value will be a long data type case DistributedDataType.Counter: providerItem = new ProviderDataTypeItem <IEnumerable>(sqlDatasource.GetCustomerCountByCompanyName(key)); break; // incase of all other data types, the result must be enumerable case DistributedDataType.Dictionary: providerItem = new ProviderDataTypeItem <IEnumerable>(sqlDatasource.LoadCustomersByCity(key)); break; case DistributedDataType.List: providerItem = new ProviderDataTypeItem <IEnumerable>(sqlDatasource.LoadCustomersFromCountry(key)); break; case DistributedDataType.Queue: providerItem = new ProviderDataTypeItem <IEnumerable>(sqlDatasource.LoadCustomersByOrder(key)); break; case DistributedDataType.Set: // only primitive types can be used for HashSet providerItem = new ProviderDataTypeItem <IEnumerable>(sqlDatasource.LoadOrderIDsByCustomer(key)); break; } return(providerItem); }
public void MakeStoreItem(string key, ProviderDataTypeItem <object> providerItem) { Key = key; ExpirationType = providerItem.Expiration.Type; TimeToLive = providerItem.Expiration.ExpireAfter; ItemPriority = providerItem.ItemPriority; Group = providerItem.Group; }