public bool execute(ICustomRequest request) { bool response = false; MediaServicesCredentials xIdentity = new MediaServicesCredentials(request.MediaAccountName, request.MediaAccountKey); _MediaServicesContext = new CloudMediaContext(xIdentity); IAsset curretAsset = _MediaServicesContext.Assets.Where(a => a.Id == request.AssetId).FirstOrDefault(); IAssetFile jsonFile = curretAsset.AssetFiles.Where(f => f.Name.EndsWith(".json")).FirstOrDefault(); if (jsonFile != null) { ILocator locator = curretAsset.Locators.Where(l => l.Type == LocatorType.OnDemandOrigin).FirstOrDefault(); if (locator == null) { locator = CreateStreamingLocator(curretAsset, 365); } string jsonUrl = locator.Path + "/" + jsonFile.Name; string callbackUrl = "https://www.google.cl/#q="; httpCallBack(callbackUrl, jsonUrl).Wait(); response = true; } return(response); }
public override void HandleExecute(ChainRequest request) { myRequest = (ButlerProcessRequest)request; blobManager = BlobManagerFactory.CreateBlobManager(myRequest.ProcessConfigConn); IjsonKeyValue stepConfig = new jsonKeyValue(StepConfiguration); //Lead External Step from DLL try { blobManager.parkingNewBinaries(); myCustomStepExecution = buildCustomStep(stepConfig.Read("AssemblyName"), stepConfig.Read("TypeName")); } catch (Exception X) { sendError("MediaButlerCustomStep Loading error : " + X.Message); } //Transform ButlerProcessRequest to ICustomRequest myCustomRequest = buildRequest(myRequest); //Execute sync try { myCustomStepExecution.execute(myCustomRequest); //UPdate myRequest myRequest.AssetId = myCustomRequest.AssetId; } catch (Exception X) { sendError("MediaButlerCustomStep Execute error " + X.Message); } //Update status UpdateProcessStatus(myRequest, "Finish Custome Execution"); }
public bool execute(ICustomRequest request) { var _MediaServicesContext = new CloudMediaContext(request.MediaAccountName, request.MediaAccountKey); IAsset asset = (from m in _MediaServicesContext.Assets select m).Where(m => m.Id == request.AssetId).FirstOrDefault(); CopyCaptions(asset, asset.ParentAssets.FirstOrDefault()); request.AssetId = asset.ParentAssets.FirstOrDefault().Id; asset.Delete(); return(true); }
public bool execute(ICustomRequest request) { myRequest = request; storageAccount = CloudStorageAccount.Parse(myRequest.ProcessConfigConn); blobClient = storageAccount.CreateCloudBlobClient(); container = blobClient.GetContainerReference(myRequest.ProcessTypeId); if (CheckSw()) { Trace.TraceWarning("Another Process Running, abort"); Information("Start Stop"); Stop(); } else { Information("Start process"); CloudBlockBlob blockBlob = container.GetBlockBlobReference("track/" + request.MediaAccountName); blockBlob.UploadText(request.ProcessInstanceId); Start(); } return(true); }
protected override void Initialize(RequestContext requestContext) { base.Initialize(requestContext); _customRequest = new CustomRequest(requestContext.HttpContext.Request); }
public BroadcastController(IClient client, IPhoneNumbers phoneNumbers, ICustomRequest customRequest = null) { _client = client; _phoneNumbers = phoneNumbers; _customRequest = customRequest; }
public RecordingsController(IClient client, IPhoneNumbers phoneNumbers, ICustomRequest customRequest = null) { _client = client; _phoneNumbers = phoneNumbers; _customRequest = customRequest; }
protected override void Initialize(RequestContext requestContext) { base.Initialize(requestContext); _customRequest = new CustomRequest(requestContext.HttpContext.Request); }
public RecordingsController(IClient client, IPhoneNumbers phoneNumbers, ICustomRequest customRequest = null) { _client = client; _phoneNumbers = phoneNumbers; _customRequest = customRequest; }
public bool execute(ICustomRequest request) { bool response = true; MediaServicesCredentials xIdentity = new MediaServicesCredentials(request.MediaAccountName, request.MediaAccountKey); _MediaServicesContext = new CloudMediaContext(xIdentity); IJob job = _MediaServicesContext.Jobs.Create("Video Thumbnail Job"); string MediaProcessorName = "Azure Media Video Thumbnails"; var processor = GetLatestMediaProcessorByName(MediaProcessorName); IAsset curretAsset = _MediaServicesContext.Assets.Where(a => a.Id == request.AssetId).FirstOrDefault(); IAsset video360 = _MediaServicesContext.Assets.Create(curretAsset.Name.ToString() + " 360", AssetCreationOptions.None); List <IAssetFile> filesToCopy; filesToCopy = GetFiles(curretAsset, "360_500.mp4"); CopyAssetFiles(video360, filesToCopy); String configuration = "{\"version\":\"1.0\",\"options\":{\"outputAudio\" : \"false\", \"maxMotionThumbnailDurationInSecs\": \"10\", \"fadeInFadeOut\" : \"false\" }}"; // Create a task with the encoding details, using a string preset. ITask task = job.Tasks.AddNew("My Video Thumbnail Task " + curretAsset.Id.ToString(), processor, configuration, TaskOptions.None); // Specify the input asset. task.InputAssets.Add(video360); // Specify the output asset. task.OutputAssets.AddNew(curretAsset.Id.ToString() + " Summarized", AssetCreationOptions.None); // Use the following event handler to check job progress. job.StateChanged += new EventHandler <JobStateChangedEventArgs>(StateChanged); // Launch the job. job.Submit(); // Check job execution and wait for job to finish. Task progressJobTask = job.GetExecutionProgressTask(CancellationToken.None); progressJobTask.Wait(); // If job state is Error, the event handling // method for job progress should log errors. Here we check // for error state and exit if needed. if (job.State == JobState.Error) { ErrorDetail error = job.Tasks.First().ErrorDetails.First(); Console.WriteLine(string.Format("Error: {0}. {1}", error.Code, error.Message)); response = false; } IAsset summarizedAsset = _MediaServicesContext.Assets.Where(a => a.Name == curretAsset.Id.ToString() + " Summarized").FirstOrDefault(); List <IAssetFile> filesToCopy2; filesToCopy2 = GetFiles(summarizedAsset, ".mp4"); CopyAssetFiles(curretAsset, filesToCopy2); video360.Delete(); summarizedAsset.Delete(); return(response); }
public BroadcastController(IClient client, IPhoneNumbers phoneNumbers, ICustomRequest customRequest = null) { _client = client; _phoneNumbers = phoneNumbers; _customRequest = customRequest; }