public async Task <string> GetSasForTable(string tableName, string partitionKey) { if (String.IsNullOrEmpty(tableName)) { return(null); } var table = await _azureStorage.GetTableReferenceAsync(tableName); if (table == null) { return(null); } var sas = table.GetSharedAccessSignature( new SharedAccessTablePolicy { Permissions = SharedAccessTablePermissions.Query, SharedAccessExpiryTime = LvConfiguration.GetExpireTime(LvConfiguration.TokenExpireOffset) }, null, /* accessPolicyIdentifier */ partitionKey, /* startPartitionKey */ null, /* startRowKey */ partitionKey, /* endPartitionKey */ null); /* endRowKey */ return(string.Format(CultureInfo.InvariantCulture, "{0}{1}", table.Uri, sas)); }
public async Task <T> Get <T>(string key, Func <Task <T> > func) { var value = Get <T>(key); if (value != null) { return(value); } #region Cache Task var asyncKey = String.Format("{0} {1}", RegionOfAsync, key); Task <T> cachedTask, newTask = null; lock (_cache) { cachedTask = _cache.Get(asyncKey) as Task <T>; if (cachedTask == null) { newTask = func(); _cache.Set(asyncKey, newTask, LvConfiguration.GetExpireTime(LvConfiguration.AsyncCacheExpireOffset)); } } value = cachedTask != null ? await cachedTask.ContinueWith(r => r.Result) : newTask != null ? await newTask : await func(); #endregion //value = await func(); Set(key, value); return(value); }
public void Set(string key, object value) { Set(key, value, LvConfiguration.GetExpireTime(LvConfiguration.CacheExpireOffset)); }