private static void DeleteLive(string authToken, string accountId, MediaClient mediaClient) { IProgram[] programs = mediaClient.GetEntities(MediaEntity.Program) as IProgram[]; foreach (IProgram program in programs) { program.Delete(); DeleteAsset(authToken, accountId, mediaClient, program.Asset); } IChannel[] channels = mediaClient.GetEntities(MediaEntity.Channel) as IChannel[]; foreach (IChannel channel in channels) { channel.Delete(); } }
private static MediaProcessor[] GetProcessors(string authToken, bool presetsView) { MediaClient mediaClient = new MediaClient(authToken); IMediaProcessor[] processors = mediaClient.GetEntities(MediaEntity.Processor) as IMediaProcessor[]; return(GetMediaProcessors(processors, presetsView)); }
public static object GetMediaProcessors(string authToken, bool gridView) { object mediaProcessors = null; if (gridView) { MediaClient mediaClient = new MediaClient(authToken); mediaProcessors = mediaClient.GetEntities(MediaEntity.Processor) as IMediaProcessor[]; } else { CacheClient cacheClient = new CacheClient(authToken); string itemKey = Constants.Cache.ItemKey.MediaProcessors; MediaProcessor[] mediaProcessorTypes = cacheClient.GetValue <MediaProcessor[]>(itemKey); if (mediaProcessorTypes == null) { mediaProcessorTypes = cacheClient.Initialize(authToken); } NameValueCollection processors = new NameValueCollection(); foreach (MediaProcessor mediaProcessorType in mediaProcessorTypes) { string processorName = Processors.GetMediaProcessorName(mediaProcessorType); processors.Add(processorName, mediaProcessorType.ToString()); } mediaProcessors = processors; } return(mediaProcessors); }
public static NameValueCollection GetJobTemplates(string authToken) { NameValueCollection jobTemplates = new NameValueCollection(); MediaClient mediaClient = new MediaClient(authToken); IJobTemplate[] templates = mediaClient.GetEntities(MediaEntity.JobTemplate) as IJobTemplate[]; foreach (IJobTemplate template in templates) { jobTemplates.Add(template.Name, template.Id); } return(jobTemplates); }
private static IEnumerable <ILocator> GetMediaLocators(MediaClient mediaClient, string assetName) { ILocator[] locators; if (string.IsNullOrEmpty(assetName)) { locators = mediaClient.GetEntities(MediaEntity.Locator) as ILocator[]; } else { IAsset[] assets = mediaClient.GetEntities(MediaEntity.Asset, assetName) as IAsset[]; List <ILocator> assetLocators = new List <ILocator>(); foreach (IAsset asset in assets) { assetLocators.AddRange(asset.Locators); } locators = assetLocators.ToArray(); } locators = Array.FindAll(locators, FilterByStreaming); Array.Sort <ILocator>(locators, OrderByDate); return(locators); }
private static IStreamingEndpoint GetStreamingEndpoint(MediaClient mediaClient) { IStreamingEndpoint streamingEndpoint = null; IStreamingEndpoint[] streamingEndpoints = mediaClient.GetEntities(MediaEntity.StreamingEndpoint) as IStreamingEndpoint[]; if (streamingEndpoints.Length > 1) { streamingEndpoint = mediaClient.GetEntityByName(MediaEntity.StreamingEndpoint, Constant.Media.Stream.DefaultEndpointName) as IStreamingEndpoint; } else if (streamingEndpoints.Length == 1) { streamingEndpoint = streamingEndpoints[0]; } return(streamingEndpoint); }
public static bool IsStreamingEnabled(MediaClient mediaClient) { bool streamingEnabled = false; IStreamingEndpoint[] streamingEndpoints = mediaClient.GetEntities(MediaEntity.StreamingEndpoint) as IStreamingEndpoint[]; foreach (IStreamingEndpoint streamingEndpoint in streamingEndpoints) { if (streamingEndpoint.State == StreamingEndpointState.Running || streamingEndpoint.State == StreamingEndpointState.Scaling) { streamingEnabled = true; } } return(streamingEnabled); }
public MediaProcessor[] Initialize(string authToken) { MediaClient mediaClient = new MediaClient(authToken); IMediaProcessor[] mediaProcessors = mediaClient.GetEntities(MediaEntity.Processor) as IMediaProcessor[]; List <MediaProcessor> mediaProcessorList = new List <MediaProcessor>(); foreach (IMediaProcessor mediaProcessor in mediaProcessors) { MediaProcessor processorType = Processors.GetMediaProcessorType(mediaProcessor.Id); mediaProcessorList.Add(processorType); } MediaProcessor[] mediaProcessorTypes = mediaProcessorList.ToArray(); SetValue <MediaProcessor[]>(Constants.Cache.ItemKey.MediaProcessors, mediaProcessorTypes); return(mediaProcessorTypes); }
public static MediaStream[] GetMediaStreams(MediaClient mediaClient) { List <MediaStream> mediaStreams = new List <MediaStream>(); string settingKey = Constants.AppSettingKey.MediaLocatorMaxStreamCount; int maxStreamCount = int.Parse(AppSetting.GetValue(settingKey)); ILocator[] locators = mediaClient.GetEntities(MediaEntity.Locator) as ILocator[]; Array.Sort <ILocator>(locators, OrderLocators); foreach (ILocator locator in locators) { IAsset asset = locator.Asset; if (asset.IsStreamable && asset.AssetFiles.Count() > 1) { string locatorUrl = mediaClient.GetLocatorUrl(asset, locator.Type, null); if (!string.IsNullOrEmpty(locatorUrl)) { MediaTrack[] textTracks = GetTextTracks(mediaClient, asset, locator.Type); string[] protectionTypes = mediaClient.GetProtectionTypes(asset); MediaMetadata[] analyticsProcessors = GetAnalyticsProcessors(asset); MediaStream mediaStream = new MediaStream(); mediaStream.Name = asset.Name; mediaStream.SourceUrl = locatorUrl; mediaStream.TextTracks = textTracks; mediaStream.ProtectionTypes = protectionTypes; mediaStream.AnalyticsProcessors = analyticsProcessors; mediaStreams.Add(mediaStream); foreach (IStreamingAssetFilter filter in asset.AssetFilters) { mediaStream = new MediaStream(); mediaStream.Name = string.Concat(asset.Name, " (Filtered)"); mediaStream.SourceUrl = string.Concat(locatorUrl, "(filter=", filter.Name, ")"); mediaStream.TextTracks = new MediaTrack[] { }; mediaStream.ProtectionTypes = new string[] { }; mediaStream.AnalyticsProcessors = new MediaMetadata[] { }; mediaStreams.Add(mediaStream); } } } if (mediaStreams.Count == maxStreamCount) { break; } } return(mediaStreams.ToArray()); }
public static NameValueCollection GetAccounts(string authToken) { NameValueCollection storageAccounts = new NameValueCollection(); MediaClient mediaClient = new MediaClient(authToken); IStorageAccount defaultStorage = mediaClient.DefaultStorageAccount; string accountInfo = GetAccountInfo(authToken, defaultStorage); storageAccounts.Add(accountInfo, defaultStorage.Name); IStorageAccount[] accounts = mediaClient.GetEntities(MediaEntity.StorageAccount) as IStorageAccount[]; foreach (IStorageAccount account in accounts) { if (!account.IsDefault) { accountInfo = GetAccountInfo(authToken, account); storageAccounts.Add(accountInfo, account.Name); } } return(storageAccounts); }
public static object GetMediaProcessors(string authToken, bool presetsView, bool getEntities) { object mediaProcessors; if (getEntities) { MediaClient mediaClient = new MediaClient(authToken); mediaProcessors = mediaClient.GetEntities(MediaEntity.Processor); } else { NameValueCollection processorNames = new NameValueCollection(); MediaProcessor[] processors = GetMediaProcessors(authToken, presetsView); foreach (MediaProcessor processor in processors) { string processorName = GetProcessorName(processor); processorNames.Add(processorName, processor.ToString()); } mediaProcessors = processorNames; } return(mediaProcessors); }
public static void ClearAccount(MediaClient mediaClient, bool allEntities) { if (allEntities) { IProgram[] programs = mediaClient.GetEntities(MediaEntity.Program) as IProgram[]; foreach (IProgram program in programs) { program.Delete(); } IChannel[] channels = mediaClient.GetEntities(MediaEntity.Channel) as IChannel[]; foreach (IChannel channel in channels) { channel.Delete(); } IIngestManifest[] manifests = mediaClient.GetEntities(MediaEntity.Manifest) as IIngestManifest[]; foreach (IIngestManifest manifest in manifests) { manifest.Delete(); } } IJob[] jobs = mediaClient.GetEntities(MediaEntity.Job) as IJob[]; foreach (IJob job in jobs) { job.Delete(); } INotificationEndPoint[] notificationEndpoints = mediaClient.GetEntities(MediaEntity.NotificationEndpoint) as INotificationEndPoint[]; foreach (INotificationEndPoint notificationEndpoint in notificationEndpoints) { if (notificationEndpoint.EndPointType == NotificationEndPointType.AzureTable) { IMonitoringConfiguration monitoringConfig = mediaClient.GetEntityById(MediaEntity.MonitoringConfiguration, notificationEndpoint.Id) as IMonitoringConfiguration; if (monitoringConfig != null) { monitoringConfig.Delete(); } } notificationEndpoint.Delete(); } IAsset[] assets = mediaClient.GetEntities(MediaEntity.Asset) as IAsset[]; foreach (IAsset asset in assets) { if (asset.ParentAssets.Count > 0 || allEntities) { DeleteAsset(mediaClient, asset); } } if (allEntities) { IAccessPolicy[] accessPolicies = mediaClient.GetEntities(MediaEntity.AccessPolicy) as IAccessPolicy[]; foreach (IAccessPolicy accessPolicy in accessPolicies) { accessPolicy.Delete(); } IAssetDeliveryPolicy[] deliveryPolicies = mediaClient.GetEntities(MediaEntity.DeliveryPolicy) as IAssetDeliveryPolicy[]; foreach (IAssetDeliveryPolicy deliveryPolicy in deliveryPolicies) { deliveryPolicy.Delete(); } IContentKeyAuthorizationPolicy[] contentKeyAuthPolicies = mediaClient.GetEntities(MediaEntity.ContentKeyAuthPolicy) as IContentKeyAuthorizationPolicy[]; foreach (IContentKeyAuthorizationPolicy contentKeyAuthPolicy in contentKeyAuthPolicies) { contentKeyAuthPolicy.Delete(); } IContentKeyAuthorizationPolicyOption[] contentKeyAuthPolicyOptions = mediaClient.GetEntities(MediaEntity.ContentKeyAuthPolicyOption) as IContentKeyAuthorizationPolicyOption[]; foreach (IContentKeyAuthorizationPolicyOption contentKeyAuthPolicyOption in contentKeyAuthPolicyOptions) { contentKeyAuthPolicyOption.Delete(); } } }
public static string[][] GetEntityCounts(MediaClient mediaClient) { IStorageAccount[] storageAccounts = mediaClient.GetEntities(MediaEntity.StorageAccount) as IStorageAccount[]; IContentKey[] contentKeys = mediaClient.GetEntities(MediaEntity.ContentKey) as IContentKey[]; IContentKeyAuthorizationPolicy[] contentKeyAuthZPolicies = mediaClient.GetEntities(MediaEntity.ContentKeyAuthPolicy) as IContentKeyAuthorizationPolicy[]; IContentKeyAuthorizationPolicyOption[] contentKeyAuthZPolicyOptions = mediaClient.GetEntities(MediaEntity.ContentKeyAuthPolicyOption) as IContentKeyAuthorizationPolicyOption[]; IIngestManifest[] manifests = mediaClient.GetEntities(MediaEntity.Manifest) as IIngestManifest[]; IIngestManifestAsset[] manifestAssets = mediaClient.GetEntities(MediaEntity.ManifestAsset) as IIngestManifestAsset[]; IIngestManifestFile[] manifestFiles = mediaClient.GetEntities(MediaEntity.ManifestFile) as IIngestManifestFile[]; IAsset[] assets = mediaClient.GetEntities(MediaEntity.Asset) as IAsset[]; IAssetFile[] files = mediaClient.GetEntities(MediaEntity.File) as IAssetFile[]; IChannel[] channels = mediaClient.GetEntities(MediaEntity.Channel) as IChannel[]; IProgram[] programs = mediaClient.GetEntities(MediaEntity.Program) as IProgram[]; IMediaProcessor[] processors = mediaClient.GetEntities(MediaEntity.Processor) as IMediaProcessor[]; IEncodingReservedUnit[] processorUnits = mediaClient.GetEntities(MediaEntity.ProcessorUnit) as IEncodingReservedUnit[]; IJobTemplate[] jobTemplates = mediaClient.GetEntities(MediaEntity.JobTemplate) as IJobTemplate[]; IJob[] jobs = mediaClient.GetEntities(MediaEntity.Job) as IJob[]; INotificationEndPoint[] notificationEndpoints = mediaClient.GetEntities(MediaEntity.NotificationEndpoint) as INotificationEndPoint[]; IAccessPolicy[] accessPolicies = mediaClient.GetEntities(MediaEntity.AccessPolicy) as IAccessPolicy[]; IAssetDeliveryPolicy[] deliveryPolicies = mediaClient.GetEntities(MediaEntity.DeliveryPolicy) as IAssetDeliveryPolicy[]; IStreamingEndpoint[] streamingEndpoints = mediaClient.GetEntities(MediaEntity.StreamingEndpoint) as IStreamingEndpoint[]; IStreamingFilter[] streamingFilters = mediaClient.GetEntities(MediaEntity.StreamingFilter) as IStreamingFilter[]; ILocator[] locators = mediaClient.GetEntities(MediaEntity.Locator) as ILocator[]; List <string[]> entityCounts = new List <string[]>(); entityCounts.Add(new string[] { "Storage Accounts", storageAccounts.Length.ToString() }); entityCounts.Add(new string[] { "Content Keys", contentKeys.Length.ToString(), "/account/contentKeys" }); entityCounts.Add(new string[] { "Content Key AuthZ Policies", contentKeyAuthZPolicies.Length.ToString(), "/account/contentKeyAuthZPolicies" }); entityCounts.Add(new string[] { "Content Key AuthZ Policy Options", contentKeyAuthZPolicyOptions.Length.ToString(), "/account/contentKeyAuthZPolicyOptions" }); entityCounts.Add(new string[] { "Ingest Manifests", manifests.Length.ToString() }); entityCounts.Add(new string[] { "Ingest Manifest Assets", manifestAssets.Length.ToString() }); entityCounts.Add(new string[] { "Ingest Manifest Files", manifestFiles.Length.ToString() }); entityCounts.Add(new string[] { "Assets", assets.Length.ToString() }); entityCounts.Add(new string[] { "Asset Files", files.Length.ToString() }); entityCounts.Add(new string[] { "Media Processors", processors.Length.ToString(), "/account/mediaProcessors" }); entityCounts.Add(new string[] { "Media Processor Units", GetProcessorUnitCount(processorUnits).ToString() }); entityCounts.Add(new string[] { "Channels", channels.Length.ToString() }); entityCounts.Add(new string[] { "Channel Programs", programs.Length.ToString() }); entityCounts.Add(new string[] { "Job Templates", jobTemplates.Length.ToString() }); entityCounts.Add(new string[] { "Jobs", jobs.Length.ToString() }); entityCounts.Add(new string[] { "Notification Endpoints", notificationEndpoints.Length.ToString(), "/account/notificationEndpoints" }); entityCounts.Add(new string[] { "Access Policies", accessPolicies.Length.ToString() }); entityCounts.Add(new string[] { "Delivery Policies", deliveryPolicies.Length.ToString() }); entityCounts.Add(new string[] { "Streaming Endpoints", streamingEndpoints.Length.ToString() }); entityCounts.Add(new string[] { "Streaming Units", GetStreamingUnitCount(streamingEndpoints).ToString() }); entityCounts.Add(new string[] { "Streaming Filters", streamingFilters.Length.ToString() }); entityCounts.Add(new string[] { "Locators", locators.Length.ToString() }); return(entityCounts.ToArray()); }
public static object GetNotificationEndpoints(string authToken) { MediaClient mediaClient = new MediaClient(authToken); return(mediaClient.GetEntities(MediaEntity.NotificationEndpoint) as INotificationEndPoint[]); }
public static object GetContentKeyAuthZPolicyOptions(string authToken) { MediaClient mediaClient = new MediaClient(authToken); return(mediaClient.GetEntities(MediaEntity.ContentKeyAuthPolicyOption) as IContentKeyAuthorizationPolicyOption[]); }
public static object GetContentKeys(string authToken) { MediaClient mediaClient = new MediaClient(authToken); return(mediaClient.GetEntities(MediaEntity.ContentKey) as IContentKey[]); }
public static void DeleteEntities(string authToken, bool allEntities, bool liveOnly) { User authUser = new User(authToken); MediaClient mediaClient = new MediaClient(authToken); if (liveOnly) { DeleteLive(authToken, authUser.MediaAccount.Id, mediaClient); } else if (!allEntities) { IAsset[] assets = mediaClient.GetEntities(MediaEntity.Asset) as IAsset[]; foreach (IAsset asset in assets) { if (asset.ParentAssets.Count > 0) { DeleteAsset(authToken, authUser.MediaAccount.Id, mediaClient, asset); } } } else { DeleteLive(authToken, authUser.MediaAccount.Id, mediaClient); IIngestManifest[] manifests = mediaClient.GetEntities(MediaEntity.Manifest) as IIngestManifest[]; foreach (IIngestManifest manifest in manifests) { manifest.Delete(); } IJobTemplate[] jobTemplates = mediaClient.GetEntities(MediaEntity.JobTemplate) as IJobTemplate[]; foreach (IJobTemplate jobTemplate in jobTemplates) { jobTemplate.Delete(); } IJob[] jobs = mediaClient.GetEntities(MediaEntity.Job) as IJob[]; foreach (IJob job in jobs) { DeleteJob(authUser.MediaAccount.Id, job); } INotificationEndPoint[] notificationEndpoints = mediaClient.GetEntities(MediaEntity.NotificationEndpoint) as INotificationEndPoint[]; foreach (INotificationEndPoint notificationEndpoint in notificationEndpoints) { if (notificationEndpoint.EndPointType == NotificationEndPointType.AzureTable) { IMonitoringConfiguration monitoringConfig = mediaClient.GetEntityById(MediaEntity.MonitoringConfiguration, notificationEndpoint.Id) as IMonitoringConfiguration; if (monitoringConfig != null) { monitoringConfig.Delete(); } } notificationEndpoint.Delete(); } IAsset[] assets = mediaClient.GetEntities(MediaEntity.Asset) as IAsset[]; foreach (IAsset asset in assets) { DeleteAsset(authToken, authUser.MediaAccount.Id, mediaClient, asset); } IAccessPolicy[] accessPolicies = mediaClient.GetEntities(MediaEntity.AccessPolicy) as IAccessPolicy[]; foreach (IAccessPolicy accessPolicy in accessPolicies) { accessPolicy.Delete(); } IAssetDeliveryPolicy[] deliveryPolicies = mediaClient.GetEntities(MediaEntity.DeliveryPolicy) as IAssetDeliveryPolicy[]; foreach (IAssetDeliveryPolicy deliveryPolicy in deliveryPolicies) { deliveryPolicy.Delete(); } IContentKeyAuthorizationPolicy[] contentKeyAuthPolicies = mediaClient.GetEntities(MediaEntity.ContentKeyAuthPolicy) as IContentKeyAuthorizationPolicy[]; foreach (IContentKeyAuthorizationPolicy contentKeyAuthPolicy in contentKeyAuthPolicies) { contentKeyAuthPolicy.Delete(); } IContentKeyAuthorizationPolicyOption[] contentKeyAuthPolicyOptions = mediaClient.GetEntities(MediaEntity.ContentKeyAuthPolicyOption) as IContentKeyAuthorizationPolicyOption[]; foreach (IContentKeyAuthorizationPolicyOption contentKeyAuthPolicyOption in contentKeyAuthPolicyOptions) { contentKeyAuthPolicyOption.Delete(); } IContentKey[] contentKeys = mediaClient.GetEntities(MediaEntity.ContentKey) as IContentKey[]; foreach (IContentKey contentKey in contentKeys) { contentKey.Delete(); } } }