public UnfinishedCallException(string message, Exception inner, CallDetail callDetail) : base(message, inner) { CallDetail = callDetail; }
private CallDetail FetchAssignment() { var contact = UnitOfWork.ContactRepository.NextCleaningContact(Telesale.Id); CallDetail detail = null; if (contact != null) { detail = new CallDetail { OccupiedId = SaveOccupied(contact.Id, Telesale.Id), Contact = contact, Site = contact.Site, ScriptActions = DefaultActions }; detail.Script = new TelesaleScriptProvider(contact, Telesale, null).Get(); } return detail; }
private CallDetail FetchOpr() { if (CleaningQueue == null) throw new Exception("Invalid call queue"); lock (Locker) { foreach (var queue in CleaningQueue.GetQueue()) { var person = queue.Key; if (person == null) return null; var contact = NextContact(person); if (contact == null) continue; var callDetail = new CallDetail { OccupiedId = SaveOccupied(contact.Id, Telesale.Id, person.Id), Contact = contact, LeadPerson = person, Site = contact.Site, ScriptActions = DefaultActions }; callDetail.Script = new TelesaleScriptProvider(contact, Telesale, person).Get(); return callDetail; } return null; } }
protected bool Prepare(string initial) { if (Telesale == null && string.IsNullOrEmpty(initial)) throw new Exception("Initial required!"); if (Telesale == null) { Telesale = UnitOfWork.TelesaleRepository.Filter(x => x.Initial == initial, x => x, x => x.Assignments) .SingleOrDefault(); } if (Telesale == null) throw new Exception("Invalid initial!"); var occupiedCall = UnitOfWork.OccupiedContactRepository.SingleOrDefault(x => x.TelesaleId == Telesale.Id); if (occupiedCall != null) { var callDetail = new CallDetail { OccupiedId = occupiedCall.Id, LeadPerson = occupiedCall.LeadPersonal, Contact = occupiedCall.Contact, Site = occupiedCall.Contact.Site }; callDetail.Script = new TelesaleScriptProvider(occupiedCall.Contact, occupiedCall.Telesale, occupiedCall.LeadPersonal).Get(); throw new UnfinishedCallException( "Same initial is been used by another caller or the last call has not been successfuly confirmed.", callDetail); } return true; }