public Queue CreateQueue(Queue queue) { var settings = _accountSettings.GetVoiceSettings(); var twilioClient = new TwilioRestClient(settings.AccountSid, settings.AuthToken); var twilioQueue = twilioClient.CreateQueue(queue.Name, queue.MaxSize ?? 0); if (twilioQueue.RestException != null) { _logger.Error($"Exception thrown trying to create queue in QueueProvider - {twilioQueue.RestException}"); return null; } if (twilioQueue.Sid == null) { return null; } return new Queue { Sid = twilioQueue.Sid, Name = twilioQueue.FriendlyName, Size = twilioQueue.CurrentSize, MaxSize = twilioQueue.MaxSize, AverageWaitTime = twilioQueue.AverageWaitTime }; }
public Queue BuildQueueFromEndPoint(EndPoint endPoint) { var name = endPoint.EndPointType + "_" + endPoint.EndpointId; var queue = new Queue { Name = name, MaxSize = 50 }; return queue; }
public Queue DecreaseBySid(string sid) { var queue = new Queue(); using (var db = _dbFactory.GetDatabase()) { try { queue = db.Query(new DecreaseQueueBySid(sid)); } catch (Exception ex) { _logger.Error(string.Format("Error increasing queue size of queue {0} - {1}", sid, ex)); } } return queue; }
public string GetAbandonCallsForDay(Queue queue) { using (var db = _dbFactory.GetDatabase()) { try { return db.Query(new GetCallsByQueueDayStatus(queue.Id.ToString(), (int)CallStatus.Abandoned)).Count().ToString(); //get all calls assign to particular queue abandoned today } catch (Exception ex) { _logger.Error($"Exception thrown getting calls from db - {ex}"); } return ""; } }
public int Create(Queue queue) { int queueId = 0; using (var db = _dbFactory.GetDatabase()) { try { queueId = db.Query(new CreateQueue(queue)); } catch (Exception ex) { _logger.Error($"Error creating queue {queue.Name}, {queue.Id} in db - {ex}"); } } return queueId; }
public Queue GetQueueStatsForTeam(string teamId) { var queue = new Queue(); try { queue = _queueProvider.GetQueue(queue.Sid); if (string.IsNullOrEmpty(queue.Sid)) return null; queue.AbandonRate = _queueService.GetQueueAbandonRateForDay(queue.Sid); } catch (Exception ex) { _logger.Error($"Exception thrown getting data for queue {queue.Sid} from twilio - {ex}"); } return queue; }
public Queue IncreaseById(int id) { var queue = new Queue(); using (var db = _dbFactory.GetDatabase()) { try { queue = db.Query(new IncreaseQueueById(id)); } catch (Exception ex) { _logger.Error(string.Format("Error incrementing queue {0} - {1}", id, ex)); } } return queue; }
public Queue GetByTeamId(int teamId) { var queue = new Queue(); using (var db = _dbFactory.GetDatabase()) { try { queue = db.Query(new GetQueueForTeamByTeamId(teamId)); } catch (Exception ex) { _logger.Error($"Error occured getting queue by team id {teamId} - {ex}"); } } return queue; }
public Queue GetBySid(string queueSid) { var queue = new Queue(); using (var db = _dbFactory.GetDatabase()) { try { queue = db.Query(new GetQueueBySid(queueSid)); } catch (Exception ex) { _logger.Error($"Exception thrown getting queue by sid {queueSid}. Ex - {ex}"); } } return queue; }
public Call GetFirstCallFromQueue(Queue queue) { var settings = _accountSettings.GetVoiceSettings(); var twilioClient = new TwilioRestClient(settings.AccountSid, settings.AuthToken); var result = twilioClient.GetFirstQueueMember(queue.Sid); return new Call { Sid = result.CallSid, WaitTime = result.WaitTime, DateEnqueued = result.DateEnqueued, Position = result.Position }; }
public Queue GetByEndPoint(EndPoint endPoint) { var queue = new Queue(); using (var db = _dbFactory.GetDatabase()) { try { switch (endPoint.EndPointType) { case EndPointType.Agent: queue = db.Query(new GetQueueForAgentByAgentId(endPoint.EndpointId)); break; case EndPointType.Team: queue = db.Query(new GetQueueForTeamByTeamId(endPoint.EndpointId)); break; case EndPointType.Department: queue = db.Query(new GetQueueForDepartmentByDepartmentId(endPoint)); break; case EndPointType.Company: queue = db.Query(new GetQueueForCompanyByCompanyId(endPoint)); break; default: return db.Query(new GetQueueForCompanyByCompanyId(endPoint)); } } catch (Exception ex) { _logger.Error($"Exception thrown in QueueRepository - {ex}"); } } return queue; }
public Queue GetByCompanyId(EndPoint endPoint) { var queue = new Queue(); using (var db = _dbFactory.GetDatabase()) { try { queue = db.Query(new GetQueueForCompanyByCompanyId(endPoint)); } catch (Exception ex) { _logger.Error("ANOTHER ERROR!!"); } } return queue; }
public Queue GetByAgentId(int agentId) { var queue = new Queue(); using (var db = _dbFactory.GetDatabase()) { try { queue = db.Query(new GetQueueForAgentByAgentId(agentId)); } catch (Exception ex) { _logger.Error("AN ERROR!!!"); } } return queue; }
public bool DeleteQueue(Queue queue) { var settings = _accountSettings.GetVoiceSettings(); var twilioClient = new TwilioRestClient(settings.AccountSid, settings.AuthToken); var result = twilioClient.DeleteQueue(queue.Sid); return result == DeleteStatus.Success; }
public Queue GetByName(string name) { var queue = new Queue(); using (var db = _dbFactory.GetDatabase()) { try { queue = db.Query(new GetQueueByName(name)); } catch (Exception ex) { _logger.Error($"Exception thrown getting queue with name {name}. Exception - {ex}"); } } return queue; }
public AgentQueueRouteBuilder(Agent agent, Queue queue, string url) { _agent = agent; _queue = queue; _url = url; }
public bool DequeueFirstCallFromQueue(Queue queue, IRouteBuilder route) { var settings = _accountSettings.GetVoiceSettings(); var twilioClient = new TwilioRestClient(settings.AccountSid, settings.AuthToken); var result = twilioClient.DequeueFirstQueueMember(queue.Sid, route.Url, route.Method); return result == DequeueStatus.Success; }