/// <inheritdoc/> protected override async Task <ResponseBaseDTO> DoWorkAsync(RequestMediaServicesV2EncodeCreateDTO eventData, string eventType) { // Call the service that will do work: ServiceOperationResultEncodeDispatched encodeDispatched = await _mediaServicesV2Encoder.EncodeCreateAsync(eventData).ConfigureAwait(false); // Convert the service operation result into a success DTO: return(new ResponseEncodeDispatchedDTO(CustomEventTypes.ResponseEncodeMediaServicesV2Dispatched) { WorkflowJobName = encodeDispatched.WorkflowJobName, EncoderContext = encodeDispatched.EncoderContext, OperationContext = encodeDispatched.OperationContext, }); }
public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "post", "get", Route = null)] HttpRequest req, ILogger log) { string jobId; try { // TODO: Parse your arguments to build a job var todo = req?.ContentLength; string requestBody; using (var sr = new StreamReader(req?.Body)) { requestBody = await sr.ReadToEndAsync().ConfigureAwait(false); } var parameters = JsonConvert.DeserializeObject <EncodingFunctionInputDTO>(requestBody); string presetName = parameters?.PresetName ?? throw new Exception("Property 'presetName' is missing in the json body."); List <Uri> sourceUris = parameters?.Inputs?.Select(i => i.BlobUri).ToList() ?? throw new Exception("Property 'inputs' is missing in the json body."); string outputAssetStorage = parameters?.OutputAssetStorage; var operationContext = parameters?.OperationContext; jobId = await _mediaServicesV2Encoder.EncodeCreateAsync( presetName, sourceUris, outputAssetStorage, operationContext).ConfigureAwait(false); } catch (Exception e) { return(new BadRequestObjectResult(new { error = $"Failed.\n\nException.Message:\n{e.Message}\n\nInnerException.Message:\n{e.InnerException?.Message}" })); } var msg = $"Started: {jobId}"; log.LogInformation(msg); return(new OkObjectResult(msg)); }