public bool DeleteQueue(Queue queue)
        {
            var twilioClient = new TwilioRestClient(_accountSettings.AccountSid, _accountSettings.AuthToken);
            var result = twilioClient.DeleteQueue(queue.Id);

            return result == DeleteStatus.Success;
        }
        public bool DequeueFirstCallFromQueue(Queue queue, IRouteBuilder route)
        {
            var twilioClient = new TwilioRestClient(_accountSettings.AccountSid, _accountSettings.AuthToken);
            var result = twilioClient.DequeueFirstQueueMember(queue.Id, route.Url, route.Method);

            return result == DequeueStatus.Success;
        }
        public Call GetFirstCallFromQueue(Queue queue)
        {
            var twilioClient = new TwilioRestClient(_accountSettings.AccountSid, _accountSettings.AuthToken);
            var result = twilioClient.GetFirstQueueMember(queue.Id);

            return new Call
            {
                Id = result.CallSid,
                WaitTime = result.WaitTime,
                DateEnqueued = result.DateEnqueued,
                Position = result.Position
            };
        }
        public Queue CreateQueue(Queue queue)
        {
            var twilioClient = new TwilioRestClient(_accountSettings.AccountSid, _accountSettings.AuthToken);
            var twilioQueue = twilioClient.CreateQueue(queue.Name, queue.MaxSize?? 0);

            return new Queue
            {
                Id = twilioQueue.Sid,
                Name = twilioQueue.FriendlyName,
                Size = twilioQueue.CurrentSize,
                MaxSize = twilioQueue.MaxSize,
                AverageWaitTime = twilioQueue.AverageWaitTime
            };
        }