public override void HandleExecute(Common.workflow.ChainRequest request) { myRequest = (ButlerProcessRequest)request; Setup(); _MediaServiceContext = new CloudMediaContext(myRequest.MediaAccountName, myRequest.MediaAccountKey); IAsset encodedAsset = (from m in _MediaServiceContext.Assets select m).Where(m => m.Id == myRequest.AssetId).FirstOrDefault(); //Create key IContentKey key = CreateEnvelopeTypeContentKey(encodedAsset); //Create Token Template string tokenTemplateString = AddTokenRestrictedAuthorizationPolicy(key); Trace.TraceInformation("Added authorization policy: {0}", key.AuthorizationPolicyId); //create Delivery Policy CreateAssetDeliveryPolicy(encodedAsset, key); if (!String.IsNullOrEmpty(tokenTemplateString)) { // Deserializes a string containing an Xml representation of a TokenRestrictionTemplate // back into a TokenRestrictionTemplate class instance. TokenRestrictionTemplate tokenTemplate = TokenRestrictionTemplateSerializer.Deserialize(tokenTemplateString); // Generate a test token based on the data in the given TokenRestrictionTemplate. // Note, you need to pass the key id Guid because we specified // TokenClaim.ContentKeyIdentifierClaim in during the creation of TokenRestrictionTemplate. Guid rawkey = EncryptionUtils.GetKeyIdAsGuid(key.Id); string testToken = TokenRestrictionTemplateSerializer.GenerateTestToken(tokenTemplate, null, rawkey); Trace.TraceInformation("The authorization token is:\n{0}", testToken); myRequest.Log.Add("The authorization token"); myRequest.Log.Add(testToken); myRequest.Log.Add(""); } }
public override void HandleExecute(Common.workflow.ChainRequest request) { myRequest = (ButlerProcessRequest)request; _MediaServiceContext = new CloudMediaContext(myRequest.MediaAccountName, myRequest.MediaAccountKey); var locator = CreateStreamingLocator(myRequest.AssetId); }
public override void HandleExecute(Common.workflow.ChainRequest request) { //My request myRequest = (ButlerProcessRequest)request; //Media Context _MediaServicesContext = new CloudMediaContext(myRequest.MediaAccountName, myRequest.MediaAccountKey); //0 Encoding Helper myEncodigSupport = new EncoderSupport(_MediaServicesContext); //1. Storage Manager myStorageManager = BlobManagerFactory.CreateBlobManager(myRequest.ProcessConfigConn); //2. Load Original Asset (current on context) myAssetOriginal = (from m in _MediaServicesContext.Assets select m).Where(m => m.Id == myRequest.AssetId).FirstOrDefault(); if (IdenpotenceControl()) { ConvertMP4toSmooth(myAssetOriginal); } else { //Job Just wait for finish the current job myEncodigSupport.OnJobError += MyEncodigSupport_OnJobError; myEncodigSupport.JobUpdate += MyEncodigSupport_JobUpdate; myEncodigSupport.WaitJobFinish(currentJob.Id); } //Update AssetID myRequest.AssetId = currentJob.OutputMediaAssets.FirstOrDefault().Id; }
public override void HandleCompensation(Common.workflow.ChainRequest request) { myRequest = (ButlerProcessRequest)request; string errorTxt = string.Format("[{0}] process Type {1} instance {2} has not compensation method", this.GetType().FullName, myRequest.ProcessTypeId, myRequest.ProcessInstanceId); Trace.TraceWarning(errorTxt); }
public override void HandleExecute(Common.workflow.ChainRequest request) { //Custome Request myRequest = (ButlerProcessRequest)request; //Media context MediaContext = new CloudMediaContext(myRequest.MediaAccountName, myRequest.MediaAccountKey); if (IdenpotenceControl()) { //Create empty asset currentAsset = CreateAsset(); //Update Asset Id in the process context myRequest.AssetId = currentAsset.Id; //Ingest all Mezzamine File to asset IngestAssets(); //Set MP4 as primary setPrimaryFile(); //mark for idenpotence myRequest.MetaData.Add(this.GetType() + "_" + myRequest.ProcessInstanceId, myRequest.AssetId); } else { string txtMessage = string.Format("{0} IdenpotenceControl {1} instanceID {2} was trigger, not ingest Files", this.GetType(), myRequest.ProcessTypeId, myRequest.ProcessInstanceId); Trace.TraceInformation(txtMessage); myRequest.AssetId = myRequest.MetaData[this.GetType() + "_" + myRequest.ProcessInstanceId]; } }
public override void HandleExecute(Common.workflow.ChainRequest request) { myRequest = (ButlerProcessRequest)request; Setup(); //Add index info to request LOG, sas access to all Files (index output files) LogInfo(); }
public override void HandleCompensation(Common.workflow.ChainRequest request) { myRequest = (ButlerProcessRequest)request; string txtTrace; if (currentJob != null) { foreach (IAsset item in currentJob.OutputMediaAssets) { txtTrace = string.Format("[{0}] process Type {1} instance {2} deleted Asset id={3}", this.GetType().FullName, myRequest.ProcessTypeId, myRequest.ProcessInstanceId, item.Id); item.Delete(); Trace.TraceWarning(txtTrace); } } if (myAssetOriginal != null) { txtTrace = string.Format("[{0}] process Type {1} instance {2} deleted Asset id={3}", this.GetType().FullName, myRequest.ProcessTypeId, myRequest.ProcessInstanceId, myAssetOriginal.Id); myAssetOriginal.Delete(); Trace.TraceWarning(txtTrace); } if ((myWorkflow != null) && (string.IsNullOrEmpty(myConfig.AssetWorkflowID))) { txtTrace = string.Format("[{0}] process Type {1} instance {2} deleted Asset id={3}", this.GetType().FullName, myRequest.ProcessTypeId, myRequest.ProcessInstanceId, myWorkflow.Id); myWorkflow.Delete(); Trace.TraceWarning(txtTrace); } }
public override void HandleExecute(Common.workflow.ChainRequest request) { myRequest = (ButlerProcessRequest)request; _MediaServiceContext = new CloudMediaContext(myRequest.MediaAccountName, myRequest.MediaAccountKey); StorageManager = BlobManagerFactory.CreateBlobManager(myRequest.ProcessConfigConn); buildlocator(); }
public override void HandleCompensation(Common.workflow.ChainRequest request) { if (targetAsset != null) { string txtTrace = string.Format("[{0}] process Type {1} instance {2} Compensation deleted Asset id={3}", this.GetType().FullName, myRequest.ProcessTypeId, myRequest.ProcessInstanceId, targetAsset.Id); targetAsset.Delete(); Trace.TraceWarning(txtTrace); } }
public override void HandleExecute(Common.workflow.ChainRequest request) { myRequest = (ButlerProcessRequest)request; _MediaServicesContext = new CloudMediaContext(myRequest.MediaAccountName, myRequest.MediaAccountKey); myWaterMarkData = Newtonsoft.Json.JsonConvert.DeserializeObject <WaterMarkData>(this.readJsonControl()); myAssetOriginal = (from m in _MediaServicesContext.Assets select m).Where(m => m.Id == myRequest.AssetId).FirstOrDefault(); SetPrimaryAssetFile(); myRequest.AssetId = WaterMArkJob().Id; }
public override void HandleExecute(Common.workflow.ChainRequest request) { //Butler Request myRequest = (ButlerProcessRequest)request; //Setup Step Setup(); //Trigger Replica TriggerReplica(); }
public override void HandleExecute(Common.workflow.ChainRequest request) { myRequest = (ButlerProcessRequest)request; Setup(); ProcessReplica(); //Update Default Asset ID myRequest.AssetId = targetAsset.Id; //Change defualt AMS to Target AMS for the rest of the process myRequest.ChangeMediaServices(myConfig.TargetAMSName, myConfig.TargetAMSKey, myConfig.TargetAMSStorageConn); }
public override void HandleExecute(Common.workflow.ChainRequest request) { myRequest = (ButlerProcessRequest)request; Setup(); //Run index job IJob xJob = RunIndexingJob(); //Update the asset ID with the Id of output asset. myRequest.AssetId = xJob.OutputMediaAssets.FirstOrDefault().Id; }
public override void HandleExecute(Common.workflow.ChainRequest request) { myRequest = (ButlerProcessRequest)request; Setup(); IAsset theAsset = _MediaServiceContext.Assets.Where(xx => xx.Id == myRequest.AssetId).FirstOrDefault(); //Get alternative ID theAsset.AlternateId = getAlternativeId(); //Update theAsset theAsset.Update(); }
public override void HandleCompensation(Common.workflow.ChainRequest request) { if (currentAsset != null) { string id = currentAsset.Id; currentAsset.Delete(); Trace.TraceWarning("{0} HandleCompensation in process {2} processId {1}, with asset deletion assetid {3}", this.GetType().FullName, request.ProcessInstanceId, request.ProcessTypeId, id); } else { Trace.TraceWarning("{0} HandleCompensation in process {2} processId {1}, without asset deletion", this.GetType().FullName, request.ProcessInstanceId, request.ProcessTypeId); } }
public override void HandleExecute(Common.workflow.ChainRequest request) { myRequest = (ButlerProcessRequest)request; //Check and load AMS configuration from step coniguration if (string.IsNullOrEmpty(this.StepConfiguration)) { string errorTxt = string.Format("[{0}] process Type {1} instance {2} has not AMS configuration Data", this.GetType().FullName, myRequest.ProcessTypeId, myRequest.ProcessInstanceId); throw new Exception(errorTxt); } myConfig = Newtonsoft.Json.JsonConvert.DeserializeObject <MediaButler.BaseProcess.Replica.ProcessReplicaData>(this.StepConfiguration); //Setup AMS target to work. myRequest.ChangeMediaServices(myConfig.TargetAMSName, myConfig.TargetAMSKey, myConfig.TargetAMSStorageConn); }
public override void HandleExecute(Common.workflow.ChainRequest request) { myRequest = (ButlerProcessRequest)request; _MediaServicesContext = new CloudMediaContext(myRequest.MediaAccountName, myRequest.MediaAccountKey); //Setup Step Setup(); myAssetOriginal = (from m in _MediaServicesContext.Assets select m).Where(m => m.Id == myRequest.AssetId).FirstOrDefault(); //set primary file SetVideoPrimary(); //Load the workflow definition myWorkflow = getWorkflowAsset(); //Encode myRequest.AssetId = CreateEncodingJob(myWorkflow, myAssetOriginal).Id; }
public override void HandleExecute(Common.workflow.ChainRequest request) { myRequest = (ButlerProcessRequest)request; IButlerStorageManager resource = BlobManagerFactory.CreateBlobManager(myRequest.ProcessConfigConn); foreach (string url in myRequest.ButlerRequest.MezzanineFiles) { resource.DeleteBlobFile(url); Trace.TraceInformation("{0} in process {1} processId {2} file {3} deleted", this.GetType().FullName, myRequest.ProcessTypeId, myRequest.ProcessInstanceId, url); } if (!string.IsNullOrEmpty(myRequest.ButlerRequest.ControlFileUri)) { resource.DeleteBlobFile(myRequest.ButlerRequest.ControlFileUri); Trace.TraceInformation("{0} in process {1} processId {2} file {3} deleted", this.GetType().FullName, myRequest.ProcessTypeId, myRequest.ProcessInstanceId, myRequest.ButlerRequest.ControlFileUri); } }
public override void HandleExecute(Common.workflow.ChainRequest request) { myRequest = (ButlerProcessRequest)request; Setup(); IAsset x = _MediaServiceContext.Assets.Where(xx => xx.Id == myRequest.AssetId).FirstOrDefault(); //Create de ISM file base o the MP4 content CreateIsmFile(x); // Use Azure Media Packager to validate the files. IAsset validatedMP4s = ValidateMultibitrateMP4s(x); //Update the Asset ID in the context myRequest.AssetId = validatedMP4s.Id; }
public override void HandleExecute(Common.workflow.ChainRequest request) { myRequest = (ButlerProcessRequest)request; _MediaServiceContext = new CloudMediaContext(myRequest.MediaAccountName, myRequest.MediaAccountKey); ////Get transcode asset //Lista all media parent from current Asset IAsset myAsset = (from m in _MediaServiceContext.Assets select m).Where(m => m.Id == myRequest.AssetId).FirstOrDefault(); foreach (IAsset xParent in myAsset.ParentAssets) { if (xParent.Name.Contains(myRequest.ProcessInstanceId)) { //Delete parent asset becouse it is part of the Media blutler process instance xParent.Delete(); } } }
public override void HandleExecute(Common.workflow.ChainRequest request) { ButlerProcessRequest myRequest = (ButlerProcessRequest)request; Setup(); if (myRequest.MessageHiddenTaskStatus == TaskStatus.WaitingToRun) { //Start to hidden the Process trgigger Message myRequest.StartMessageHidden(timeSpanMessage, sleepSeconds); Trace.TraceInformation("{0}Process type {1} instance {2} start hidden Message {3}", this.GetType().FullName, myRequest.ProcessTypeId, myRequest.ProcessInstanceId, myRequest.ButlerRequest.MessageId); //Read if We have information on ButlerWorkflowstatus ButlerWorkflowstatus(myRequest); } else { //Hidden is running, now Stop it myRequest.StopMessageHidden(); do { System.Threading.Thread.Sleep(1 * 1000); } while (myRequest.MessageHiddenTaskStatus != TaskStatus.RanToCompletion); Trace.TraceInformation("{0}Process type {1} instance {2} stop hidden Message {3}", this.GetType().FullName, myRequest.ProcessTypeId, myRequest.ProcessInstanceId, myRequest.ButlerRequest.MessageId); //DELETE MESSAGE Butler request myRequest.DeleteCurrentMessage(); Trace.TraceInformation("{0}Process type {1} instance {2} delete Message {3}", this.GetType().FullName, myRequest.ProcessTypeId, myRequest.ProcessInstanceId, myRequest.ButlerRequest.MessageId); } }
public override void HandleExecute(Common.workflow.ChainRequest request) { //Request myRequest = (ButlerProcessRequest)request; //Media Context _MediaServicesContext = new CloudMediaContext(myRequest.MediaAccountName, myRequest.MediaAccountKey); // Original Asset myAssetOriginal = (from m in _MediaServicesContext.Assets select m).Where(m => m.Id == myRequest.AssetId).FirstOrDefault(); //Setup Step Setup(); //Load the workflow definition myWorkflow = createWorkflowAsset(); //Delete workflow from Original Asset string fileName = ""; fileName = myAssetOriginal.AssetFiles.Where(af => af.Name.ToLower().EndsWith(".workflow")).FirstOrDefault().Name; myAssetOriginal.AssetFiles.Where(f => f.Name.ToLower() == fileName.ToLower()).FirstOrDefault().Delete(); //Encode Uisng Premiun Encoder myRequest.AssetId = CreateEncodingJob(myWorkflow, myAssetOriginal).Id; }
public override void HandleExecute(Common.workflow.ChainRequest request) { //Custome Request myRequest = (ButlerProcessRequest)request; if (IdenpotenceControl()) { //Media context MediaContext = new CloudMediaContext(myRequest.MediaAccountName, myRequest.MediaAccountKey); //Create empty asset currentAsset = CreateAsset(); //Update Asset Id in the process context myRequest.AssetId = currentAsset.Id; //Ingest all Mezzamine File to asset IngestAssets(); //mark for idenpotence myRequest.MetaData.Add(this.GetType() + "_" + myRequest.ProcessInstanceId, myRequest.AssetId); } else { myRequest.AssetId = myRequest.MetaData[this.GetType() + "_" + myRequest.ProcessInstanceId]; } }
public override void HandleExecute(Common.workflow.ChainRequest request) { myRequest = (ButlerProcessRequest)request; _MediaServicesContext = new CloudMediaContext(myRequest.MediaAccountName, myRequest.MediaAccountKey); //0 Helper myEncodigSupport = new EncoderSupport(_MediaServicesContext); myAssetOriginal = (from m in _MediaServicesContext.Assets select m).Where(m => m.Id == myRequest.AssetId).FirstOrDefault(); if (IdenpotenceControl()) { ConvertMP4toSmooth(myAssetOriginal); } else { //Job Just wait for finish the current job myEncodigSupport.WaitJobFinish(currentJob.Id); } //Update AssetID myRequest.AssetId = currentJob.OutputMediaAssets.FirstOrDefault().Id; myRequest.MetaData.Add(this.GetType() + "_" + myRequest.ProcessInstanceId, currentJob.Id); }
public override void HandleCompensation(Common.workflow.ChainRequest request) { deleteOutput(); deleteOtiginalAsset(); }
public override void HandleExecute(Common.workflow.ChainRequest request) { myRequest = (ButlerProcessRequest)request; _MediaServiceContext = new CloudMediaContext(myRequest.MediaAccountName, myRequest.MediaAccountKey); buildlocator(); }
public override void HandleExecute(Common.workflow.ChainRequest request) { myRequest = (ButlerProcessRequest)request; //Select the asset by name and updtae the request with this AssetID SelectMediaAssetbyName(); }
public override void HandleExecute(Common.workflow.ChainRequest request) { myRequest = (ButlerProcessRequest)request; SendMail(); }
public override void HandleCompensation(Common.workflow.ChainRequest request) { Trace.TraceWarning("{0} in process {1} processId {2} has not HandleCompensation", this.GetType().FullName, myRequest.ProcessTypeId, myRequest.ProcessInstanceId); }
public override void HandleExecute(Common.workflow.ChainRequest request) { myRequest = (ButlerProcessRequest)request; //Send output info back using ButlerResponse Message LOG SendMessage(); }