public static async Task <VideoFileInfo> TranscodeVideo([ActivityTrigger] VideoFileInfo inputVideo, TraceWriter log) { log.Info($"Transcoding {inputVideo.Location} to {inputVideo.BitRate}"); // simulate doing the activity await Task.Delay(Delay); var transcodedLocation = $"{Path.GetFileNameWithoutExtension(inputVideo.Location)}-{inputVideo.BitRate}kbps.mp4"; return(new VideoFileInfo { Location = transcodedLocation, BitRate = inputVideo.BitRate }); }
public static async Task <VideoFileInfo[]> TranscodeVideo( [OrchestrationTrigger] DurableOrchestrationContext context, TraceWriter log) { var videoLocation = context.GetInput <string>(); var bitRates = new[] { 1000, 2000, 3000, 4000 }; var transcodeTasks = new List <Task <VideoFileInfo> >(); foreach (var bitRate in bitRates) { var info = new VideoFileInfo { Location = videoLocation, BitRate = bitRate }; var task = context.CallActivityAsync <VideoFileInfo>("A_TranscodedVideo", info); transcodeTasks.Add(task); } var transcodedResults = await Task.WhenAll(transcodeTasks); return(transcodedResults); }