/// <summary> /// Gets the actions based on the status. /// </summary> /// <param name="status">The status.</param> /// <returns>IList{TRequest}.</returns> public IList <TAction> GetActions(TableActionQueueItemStatus status) { var condition = TableQuery.GenerateFilterCondition("Status", QueryComparisons.Equal, status.ToString()); var query = new TableQuery <TAction>() .Where(condition); var table = TableClient.GetTableReference(TableName); IList <TAction> result = null; RetryPolicyFactory.GetDefaultAzureStorageRetryPolicy() .ExecuteAction(() => { result = table.ExecuteQuery(query).ToList(); }); return(result); }
/// <summary> /// Gets the queued requests by status. /// </summary> /// <typeparam name="TRequest">The type of the t request.</typeparam> /// <param name="status">The status.</param> /// <returns>IList{TRequest}.</returns> /// <exception cref="System.Exception"></exception> public override IList <TRequest> GetQueuedRequestsByStatus <TRequest>(TableActionQueueItemStatus status) { switch (typeof(TRequest).Name) { case "ShardletMoveRequest": { var action = GetShardletMoveRequestManager(); return(action.GetActions(status) as IList <TRequest>); } case "ShardCreationRequest": { var action = GetShardCreationRequestManager(); return(action.GetActions(status) as IList <TRequest>); } case "ShardSyncRequest": { var action = GetShardSyncRequestManager(); return(action.GetActions(status) as IList <TRequest>); } case "ShardDeletionRequest": { var action = GetShardDeletionRequestManager(); return(action.GetActions(status) as IList <TRequest>); } case "ShardMapPublishingRequest": { var action = GetShardMapPublishingRequestManager(); return(action.GetActions(status) as IList <TRequest>); } default: { throw new Exception(typeof(TRequest).Name + " Type is not supported by this queue"); } } }
/// <summary> /// Initializes a new instance of the <see cref="BaseQueueRequest"/> class. /// </summary> public BaseQueueRequest() { QueueId = -1; Status = TableActionQueueItemStatus.Queued; }
public static IList <TRequest> GetQueuedRequestsByStatus <TRequest>(TableActionQueueItemStatus filter) where TRequest : BaseQueueRequest { return(GetQueue().GetQueuedRequestsByStatus <TRequest>(filter)); }
/// <summary> /// Gets the queued requests of type TRequest by status. /// </summary> /// <typeparam name="TRequest">The type of requests to return</typeparam> /// <param name="status">The status to filter the queue on.</param> /// <returns>IList{TRequest}.</returns> public abstract IList <TRequest> GetQueuedRequestsByStatus <TRequest>(TableActionQueueItemStatus status) where TRequest : BaseQueueRequest;