public async Task <IEnumerable <IKeyValueEntity> > GetAsync(Func <IKeyValueEntity, bool> filter)
        {
            var pk   = KeyValueEntity.GeneratePartitionKey();
            var list = await _tableStorage.GetDataAsync(pk, filter);

            return(list);
        }
        public async Task <IKeyValueEntity> GetTopRecordAsync()
        {
            var pk     = KeyValueEntity.GeneratePartitionKey();
            var result = await _tableStorage.GetTopRecordAsync(pk);

            return(result);
        }
        public async Task DeleteKeyValueWithHistoryAsync(string keyValueId, string description, string userName, string userIpAddress)
        {
            var kvItem = await _tableStorage.GetDataAsync(KeyValueEntity.GeneratePartitionKey(), keyValueId);

            if (kvItem != null)
            {
                await _tableStorage.DeleteAsync(kvItem);

                await _history.DeleteKeyValueHistoryAsync(keyValueId, description, userName, userIpAddress);
            }
        }
        public async Task <Dictionary <string, IKeyValueEntity> > GetKeyValuesAsync(IEnumerable <string> keys)
        {
            var items = await _tableStorage.GetDataAsync(KeyValueEntity.GeneratePartitionKey(), keys.Select(KeyValueEntity.GenerateRowKey));

            return(items.ToDictionary(i => i.RowKey, i => (IKeyValueEntity)i));
        }
 public async Task <IKeyValueEntity> GetKeyValueAsync(string key)
 {
     return(await _tableStorage.GetDataAsync(KeyValueEntity.GeneratePartitionKey(), KeyValueEntity.GenerateRowKey(key)));
 }
        public async Task <IEnumerable <IKeyValueEntity> > GetKeyValuesAsync(Func <IKeyValueEntity, bool> filter, string repositoryId = null)
        {
            string queryText = TableQuery.GenerateFilterCondition(nameof(KeyValueEntity.PartitionKey), QueryComparisons.Equal, KeyValueEntity.GeneratePartitionKey());

            if (!string.IsNullOrWhiteSpace(repositoryId))
            {
                string repositoryFilter = TableQuery.GenerateFilterCondition(nameof(KeyValueEntity.RepositoryId), QueryComparisons.Equal, repositoryId);
                queryText = TableQuery.CombineFilters(queryText, TableOperators.And, repositoryFilter);
            }
            var query = new TableQuery <KeyValueEntity>().Where(queryText);

            return(await _tableStorage.WhereAsync(query, filter));
        }
        public async Task <IEnumerable <IKeyValueEntity> > GetKeyValuesAsync()
        {
            var pk = KeyValueEntity.GeneratePartitionKey();

            return(await _tableStorage.GetDataAsync(pk));
        }