Cuando estamos desarrollando, un método que no podemos olvidar es uno que elimine todos los assets, locators, jobs y políticas de acceso que se hayan acumulado después de realizar numerosas pruebas. Lo cierto es que es muy sencillo, ya que solamente debemos recorrer cada uno de los listados y eliminar el contenido de ellos a través del método Delete de cada uno de los objetos (también disponemos de DeleteAsync):
using Microsoft.WindowsAzure.MediaServices.Client; using System; using System.Configuration; namespace CleanAMSAccount { class Program { static void Main(string[] args) { var context = new CloudMediaContext(ConfigurationManager.AppSettings["AccountName"], ConfigurationManager.AppSettings["AccountKey"]); Console.WriteLine("Removing programs"); foreach (var program in context.Programs) { if (program.State != ProgramState.Stopped) program.Stop(); program.Delete(); } Console.WriteLine("Removing channels"); foreach (var channel in context.Channels) { if (channel.State != ChannelState.Stopped) channel.Stop(); channel.Delete(); } Console.WriteLine("Removing streaming units"); foreach (var endpoint in context.StreamingEndpoints) { if (endpoint.State != StreamingEndpointState.Scaling && endpoint.ScaleUnits > 0) endpoint.Scale(0); } Console.WriteLine("Removing encoding units"); foreach (var endpoint in context.EncodingReservedUnits) { endpoint.CurrentReservedUnits = 0; endpoint.Update(); } Console.WriteLine("Removing channels"); foreach (var channel in context.Channels) { channel.Stop(); channel.Delete(); } Console.WriteLine("Cleaning jobs"); foreach (var job in context.Jobs) { job.Delete(); } Console.WriteLine("Cleaning locators"); foreach (var locator in context.Locators) { locator.Delete(); } Console.WriteLine("Cleaning access policies"); foreach (var accessPolicy in context.AccessPolicies) { accessPolicy.Delete(); } Console.WriteLine("Cleaning assets"); foreach (var asset in context.Assets) { asset.Delete(); } Console.WriteLine("Done!"); Console.ReadLine(); } } }
Espero que sea de utilidad.
¡Saludos!