public HttpResponseMessage NextCallPost([FromBody] AgentParameters agent) { try { if (MainObject.MainList.ContainsKey(agent.User.AgentId)) { CApp mpApp = MainObject.MainList[agent.User.AgentId]; if (mpApp.CurrentService.RequireDisposition) { if (agent.DispositionClass != null) { CDisposition pDisp; if (mpApp.CurrentCall != null && mpApp.CurrentCall.CurrentState is CStatePreview) { pDisp = new CDisposition(agent.DispositionClass.Id, agent.DispositionClass.Description, agent.DispositionClass.Code, true, false, false); } else { pDisp = new CDisposition(agent.DispositionClass.Id, agent.DispositionClass.Description, agent.DispositionClass.Code, false, false, false); } try { if (agent.DispositionClass.Id == 1005 || agent.DispositionClass.Id == 1006) { string nameCustomer = mpApp.CurrentCall.FirstName; string phonenumber = mpApp.CurrentCall.PhoneNumber; mpApp.ScheduleCallback(mpApp.CurrentCall, pDisp, agent.DispositionClass.Date); mpApp.DisposeCall(mpApp.CurrentCall, pDisp); ScheduleParameters scheduleparameters = new ScheduleParameters(); scheduleparameters.Id_Disposition = pDisp.Id; scheduleparameters.Description_Disposition = pDisp.Description; scheduleparameters.Name_Customer = nameCustomer; scheduleparameters.PhoneNumber = phonenumber; scheduleparameters.AgentId = agent.User.AgentId; scheduleparameters.Date_Schedule = agent.DispositionClass.Date; return(Request.CreateResponse(HttpStatusCode.OK, scheduleparameters)); } else { mpApp.DisposeCall(mpApp.CurrentCall, pDisp); return(Request.CreateResponse(HttpStatusCode.OK, "OK")); } } catch (Exception ex) { Log.logException(ex); return(Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message)); } } else { try { mpApp.DisposeCall(mpApp.CurrentCall, null); return(Request.CreateResponse(HttpStatusCode.OK, "OK")); } catch (Exception ex) { Log.logException(ex); return(Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message)); } } } else { return(Request.CreateResponse(HttpStatusCode.NotAcceptable, "Not Require Disposition")); } } else { return(Request.CreateResponse(HttpStatusCode.NotFound, "Agent Not Found")); } } catch (Exception ex) { Log.logException(ex); return(Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message)); } }