// ReSharper disable PossibleMultipleEnumeration public async Task RunAsync(IRestContext context) { ISystemApi systemApi = context.Factory.CreateSystemApi(); // Read SqlQuery query = new SqlQuery { fields = "*", related = "services,roles", }; IEnumerable <AppResponse> apps = await systemApi.GetAppsAsync(query); Console.WriteLine("Apps: {0}", apps.Select(x => x.api_name).ToStringList()); // Cloning AppResponse todoApp = apps.Single(x => x.api_name == "todoangular"); AppRequest todoAppRequest = todoApp.Convert <AppResponse, AppRequest>(); todoAppRequest.name = todoApp.name + "clone"; todoAppRequest.api_name = todoApp.api_name + "clone"; // Creating a clone apps = await systemApi.CreateAppsAsync(new SqlQuery(), todoAppRequest); AppResponse todoAppClone = apps.Single(x => x.api_name == "todoangularclone"); Console.WriteLine("Created a clone app={0}", todoAppClone.api_name); // Deleting the clone Debug.Assert(todoAppClone.id.HasValue); await systemApi.DeleteAppsAsync(true, todoAppClone.id.Value); Console.WriteLine("Created clone has been deleted"); }
public async Task RunAsync(IRestContext context) { ISystemAppApi appApi = context.Factory.CreateSystemAppApi(); // Read SqlQuery query = new SqlQuery { Fields = "*", Related = String.Join(",", RelatedResources.App.StorageService, RelatedResources.App.Roles) }; IEnumerable <AppResponse> apps = (await appApi.GetAppsAsync(query)).ToList(); Console.WriteLine("Apps:"); foreach (AppResponse app in apps) { Console.WriteLine("\tName: {0}, ApiKey: {1}", app.Name, app.ApiKey); } // Cloning AppResponse adminApp = apps.Single(x => x.Name == "admin"); AppRequest adminAppRequest = adminApp.Convert <AppResponse, AppRequest>(); adminAppRequest.Id = null; adminAppRequest.Name = adminApp.Name + "clone"; // Creating a clone apps = await appApi.CreateAppsAsync(new SqlQuery(), adminAppRequest); AppResponse adminAppClone = apps.Single(x => x.Name == "adminclone"); Console.WriteLine("Created a clone app Name:{0}, ApiKey:{1}", adminAppClone.Name, adminAppClone.ApiKey); // Deleting the clone Debug.Assert(adminAppClone.Id.HasValue); await appApi.DeleteAppsAsync(new SqlQuery(), adminAppClone.Id.Value); Console.WriteLine("Created clone has been deleted"); }