/// <summary> /// Starts an <see cref="AudioVideoIVRJob"/>. /// </summary> /// <param name="input"><see cref="AudioVideoIVRJobInput"/> specifying the configuration for the job.</param> /// <returns>ID of the started job</returns> public HttpResponseMessage Post(AudioVideoIVRJobInput input) { ValidateInput(input); var jobConfig = new PlatformServiceSampleJobConfiguration { JobType = JobType.AudioVideoIVR, AudioVideoIVRJobInput = input }; string jobId = Guid.NewGuid().ToString("N"); try { var job = PlatformServiceClientJobHelper.GetJob(jobId, WebApiApplication.InstanceId, WebApiApplication.AzureApplication, jobConfig) as AudioVideoIVRJob; if (job == null) { return(CreateHttpResponse(HttpStatusCode.BadRequest, "{\"Error\":\"Invalid job input or job type\"}")); } job.ExecuteAsync().Observe <Exception>(); return(Request.CreateResponse(HttpStatusCode.Created, job)); } catch (Exception e) { Logger.Instance.Error(e, "Exception while starting the job."); return(CreateHttpResponse(HttpStatusCode.InternalServerError, "{\"Error\":\"Unable to start the job\"}")); } }
public async Task <HttpResponseMessage> Post(GetAdhocMeetingResourceInput input) { string jobId = Guid.NewGuid().ToString("N"); try { PlatformServiceSampleJobConfiguration jobConfig = new PlatformServiceSampleJobConfiguration { JobType = JobType.AdhocMeeting, GetAdhocMeetingResourceInput = input }; var job = PlatformServiceClientJobHelper.GetJob(jobId, WebApiApplication.InstanceId, WebApiApplication.AzureApplication, jobConfig) as GetAdhocMeetingResouceJob; if (job == null) { return(CreateHttpResponse(System.Net.HttpStatusCode.BadRequest, "Invalid job input or job type")); } AdhocMeetingToken token = await job.ExecuteCoreWithResultAsync <AdhocMeetingToken>().ConfigureAwait(false); if (token == null) { return(CreateHttpResponse(System.Net.HttpStatusCode.InternalServerError, string.Format("Unable to start a job run"))); } var httpResponse = this.Request.CreateResponse(HttpStatusCode.OK, token); return(httpResponse); } catch (Exception ex) { Logger.Instance.Error(ex, "Exception happened in schedule job"); return(CreateHttpResponse(System.Net.HttpStatusCode.InternalServerError, string.Format("Unable to start a job run"))); } }
public async Task <HttpResponseMessage> PostAsync(GetAnonTokenInput input) { if (string.IsNullOrEmpty(input.ApplicationSessionId)) { return(CreateHttpResponse(HttpStatusCode.BadRequest, "{\"Error\":\"No or invalid callback context specified!\"}")); } if (string.IsNullOrEmpty(input.AllowedOrigins)) { return(CreateHttpResponse(HttpStatusCode.BadRequest, "{\"Error\":\"Invalid AllowedOrigins\"}")); } string jobId = Guid.NewGuid().ToString("N"); try { PlatformServiceSampleJobConfiguration jobConfig = new PlatformServiceSampleJobConfiguration { JobType = JobType.GetAnonToken, AnonTokenJobInput = input }; var job = PlatformServiceClientJobHelper.GetJob(jobId, WebApiApplication.InstanceId, WebApiApplication.AzureApplication, jobConfig) as GetAnonTokenJob; if (job == null) { return(CreateHttpResponse(HttpStatusCode.BadRequest, "{\"Error\":\"Invalid job input or job type\"}")); } AnonymousToken token = await job.ExecuteWithResultAsync <AnonymousToken>().ConfigureAwait(false); if (token == null) { return(CreateHttpResponse(HttpStatusCode.InternalServerError, "{\"Error\":\"Job did not return a token\"}")); } return(Request.CreateResponse(HttpStatusCode.OK, token)); } catch (Exception ex) { telemetry.TrackException(ex); Logger.Instance.Error(ex, "Exception while scheduling job."); return(CreateHttpResponse(HttpStatusCode.InternalServerError, "{\"Error\":\"An unexecpted error occured while starting the job.\"}")); } }
public HttpResponseMessage Post(HuntGroupJobInput input) { if (input == null /* || input.InviteTargetUris == null || input.InviteTargetUris.Length < 1 */) { return(CreateHttpResponse(HttpStatusCode.BadRequest, "{\"Error\":\"Invalid HuntGroupJobInput\"}")); } if (input.InviteTargetUris != null) { foreach (string s in input.InviteTargetUris) { if (!s.StartsWith("sip", StringComparison.InvariantCultureIgnoreCase)) { return(CreateHttpResponse(HttpStatusCode.BadRequest, "{\"Error\":\"Invalid InviteTargetUri\"}")); } } } var jobConfig = new PlatformServiceSampleJobConfiguration { JobType = JobType.HuntGroup, HuntGroupJobInput = input }; string jobId = Guid.NewGuid().ToString("N"); try { PlatformServiceJobBase job = PlatformServiceClientJobHelper.GetJob(jobId, WebApiApplication.InstanceId, WebApiApplication.AzureApplication, jobConfig); if (job == null) { return(CreateHttpResponse(HttpStatusCode.BadRequest, "{\"Error\":\"Unsupported job input or job type\"}")); } job.ExecuteAsync().Observe <Exception>(); return(Request.CreateResponse(HttpStatusCode.Created, job)); } catch (Exception e) { Logger.Instance.Error(e, "Exception while scheduling job"); return(CreateHttpResponse(HttpStatusCode.InternalServerError, "{\"Error\":\"Unable to start a job run\"}")); } }
public HttpResponseMessage Post(SimpleNotifyJobInput input) { if (input == null || string.IsNullOrEmpty(input.TargetUri) || string.IsNullOrEmpty(input.NotificationMessage)) { return(CreateHttpResponse(HttpStatusCode.BadRequest, "{\"Error\":\"Invalid OutgoingMessagingNotifyInput\"}")); } if (!input.TargetUri.StartsWith("sip", StringComparison.InvariantCultureIgnoreCase)) { return(CreateHttpResponse(HttpStatusCode.BadRequest, "{\"Error\":\"Invalid To\"}")); } string jobId = Guid.NewGuid().ToString("N"); try { //New job and run asyncronizedly var jobConfig = new PlatformServiceSampleJobConfiguration { JobType = JobType.SimpleNotification, SimpleNotifyJobInput = input }; PlatformServiceJobBase job = PlatformServiceClientJobHelper.GetJob(jobId, WebApiApplication.InstanceId, WebApiApplication.AzureApplication, jobConfig); if (job == null) { return(CreateHttpResponse(HttpStatusCode.BadRequest, "{\"Error\":\"Invalid job input or job type\"}")); } job.ExecuteAndRecordAsync(Storage).Observe <Exception>(); return(Request.CreateResponse(HttpStatusCode.Created, job)); } catch (Exception e) { Logger.Instance.Error(e, "Exception happened in schedule job"); return(CreateHttpResponse(HttpStatusCode.InternalServerError, "{\"Error\":\"Unable to start a job run\"}")); } }