void PropagateRequestToCo(CreateQueue request) { var client = new RestClient(request.Cooperator); var requestToSend = new RestRequest("queues", Method.POST); requestToSend.AddParameter("Name", request.Name); client.Execute(requestToSend); }
public async Task <IHttpActionResult> Create(CreateQueue request) { var queues = await _messageQueueManager.ListQueues(); if (queues.Any(x => x.Equals(request.Name, StringComparison.InvariantCultureIgnoreCase))) { return(Conflict()); } await _messageQueueManager.CreateQueueIfNotExists(request.Name); return(Ok()); }
static IDictionary <string, string> ConvertCreateQueue(CreateQueue request) { var parameters = new Dictionary <string, string> { { "Action", "CreateQueue" } }; if (request.IsSetQueueName()) { parameters.Add("QueueName", request.QueueName); } if (request.IsSetDefaultVisibilityTimeout()) { parameters.Add("DefaultVisibilityTimeout", request.DefaultVisibilityTimeout + ""); } return(parameters); }
public void Create(CreateQueue request) { var queueLock = Locks.TakeQueueLock(request.Name); lock (queueLock) { if (Locks.QueuesRecoveryLocks.ContainsKey(request.Name)) { throw new Exception($"Queue {request.Name} is inconsistent"); } CreateQueueFile(request.Name); if (!string.IsNullOrEmpty(request.Cooperator)) { Propagators.ScheduleQueueOperation(request.Name, () => PropagateRequestToCo(request)); } } }
public CreateQueueResponse CreateQueue(CreateQueue request) { return(Invoke <CreateQueueResponse>(ConvertCreateQueue(request))); }