public static TableQuery <T> BetweenQuery(string rowKeyFrom, string rowKeyTo, ToIntervalOption intervalOption) { var sqlFilter = GenerateRowFilterString(rowKeyFrom, rowKeyTo, intervalOption); return(new TableQuery <T>().Where(sqlFilter)); }
public static TableQuery <T> BetweenQuery(string partitionKey, string rowKeyFrom, string rowKeyTo, ToIntervalOption intervalOption) { var sqlFilter = "PartitionKey " + QueryComparisons.Equal + " '" + partitionKey + "' and " + GenerateRowFilterString(rowKeyFrom, rowKeyTo, intervalOption); return(new TableQuery <T>().Where(sqlFilter)); }
/// <summary> /// Генерация запроса-диапазона только по PartitionKey /// </summary> /// <param name="from">Partition from</param> /// <param name="to">Partition to</param> /// <param name="intervalOption">Включить участок to</param> /// <returns></returns> public static TableQuery <T> BetweenQuery(string from, string to, ToIntervalOption intervalOption) { var sqlFilter = intervalOption == ToIntervalOption.IncludeTo ? "PartitionKey " + QueryComparisons.GreaterThanOrEqual + " '" + from + "' and " + "PartitionKey " + QueryComparisons.LessThanOrEqual + " '" + to + "'" : "PartitionKey " + QueryComparisons.GreaterThanOrEqual + " '" + from + "' and " + "PartitionKey " + QueryComparisons.LessThan + " '" + to + "'"; return(new TableQuery <T>().Where(sqlFilter)); }
public static TableQuery <T> BetweenQuery(string partitionKey, DateTime rowKeyFrom, DateTime rowKeyTo, ToIntervalOption intervalOption, bool includeTime = false) { var sqlFilter = "PartitionKey " + QueryComparisons.Equal + " '" + partitionKey + "' and " + GenerateRowFilterString(ConvertDateTimeToString(rowKeyFrom, includeTime), ConvertDateTimeToString(rowKeyTo, includeTime), intervalOption); return(new TableQuery <T>().Where(sqlFilter)); }
public static TableQuery <T> RangeQuery(string partitionFrom, string partitionTo, string rowKey, ToIntervalOption intervalOption) { var sqlFilter = intervalOption == ToIntervalOption.IncludeTo ? "PartitionKey " + QueryComparisons.GreaterThanOrEqual + " '" + partitionFrom + "' and " + "PartitionKey " + QueryComparisons.LessThanOrEqual + " '" + partitionTo + "'" : "PartitionKey " + QueryComparisons.GreaterThanOrEqual + " '" + partitionFrom + "' and " + "PartitionKey " + QueryComparisons.LessThan + " '" + partitionTo + "'"; return (new TableQuery <T>().Where(sqlFilter + " and RowKey " + QueryComparisons.Equal + " '" + rowKey + "'")); }
private static string GenerateRowFilterString(string rowKeyFrom, string rowKeyTo, ToIntervalOption intervalOption) { if (intervalOption == ToIntervalOption.IncludeTo) { return ("RowKey " + QueryComparisons.GreaterThanOrEqual + " '" + rowKeyFrom + "' and " + "RowKey " + QueryComparisons.LessThanOrEqual + " '" + rowKeyTo + "'"); } return ("RowKey " + QueryComparisons.GreaterThanOrEqual + " '" + rowKeyFrom + "' and " + "RowKey " + QueryComparisons.LessThan + " '" + rowKeyTo + "'"); }
public async static Task <IEnumerable <T> > WhereAsync <T>(this IAzureTableStorage <T> tableStorage, IEnumerable <string> partitionKeys, DateTime from, DateTime to, ToIntervalOption intervalOption, Func <T, bool> filter = null) where T : ITableEntity, new() { var result = new List <T>(); await Task.WhenAll( partitionKeys.Select(partitionKey => tableStorage.WhereAsync(partitionKey, from, to, intervalOption, filter) .ContinueWith(task => { lock (result) result.AddRange(task.Result); })) ); return(result); }
public static TableQuery <T> BetweenQuery(IEnumerable <string> partitionKeys, DateTime rowKeyFrom, DateTime rowKeyTo, ToIntervalOption intervalOption) { var partitions = new StringBuilder(); foreach (var partitionKey in partitionKeys) { if (partitions.Length > 0) { partitions.Append(" or "); } partitions.Append("PartitionKey " + QueryComparisons.Equal + " '" + partitionKey + "'"); } var sqlFilter = "(" + partitions + ") and " + GenerateRowFilterString(ConvertDateTimeToString(rowKeyFrom), ConvertDateTimeToString(rowKeyTo), intervalOption); return(new TableQuery <T>().Where(sqlFilter)); }
public static Task <IEnumerable <T> > WhereAsync <T>(this IAzureTableStorage <T> tableStorage, string partitionKey, DateTime from, DateTime to, ToIntervalOption intervalOption, Func <T, bool> filter = null) where T : ITableEntity, new() { var rangeQuery = QueryGenerator <T> .BetweenQuery(partitionKey, from, to, intervalOption); return(filter == null ? tableStorage.ExecuteQueryAsync(rangeQuery) : tableStorage.ExecuteQueryAsync(rangeQuery, filter)); }
public static TableQuery <T> BetweenQuery(DateTime from, DateTime to, ToIntervalOption intervalOption) { var sqlFilter = GenerateRowFilterString(ConvertDateTimeToString(@from), ConvertDateTimeToString(to), intervalOption); return(new TableQuery <T>().Where(sqlFilter)); }
public static TableQuery <T> BetweenQuery(DateTime @from, DateTime to, ToIntervalOption intervalOption) { return(BetweenQuery(ConvertDateTimeToString(@from), ConvertDateTimeToString(to), intervalOption)); }