/// <summary> /// Sets a published application matching the given alias (short unique /// name) in the collection. /// </summary> /// <param name='operations'> /// Reference to the /// Microsoft.Azure.Management.RemoteApp.IPublishingOperations. /// </param> /// <param name='collectionName'> /// Required. Collection Name /// </param> /// <param name='alias'> /// Required. Alias of published application /// </param> /// <param name='applicationDetails'> /// Required. New details for the application /// </param> /// <returns> /// Definition for result of ModifyApplicaton operation. /// </returns> public static ModifyApplicationResult ModifyApplication(this IPublishingOperations operations, string collectionName, string alias, ApplicationDetailsParameter applicationDetails) { return(Task.Factory.StartNew((object s) => { return ((IPublishingOperations)s).ModifyApplicationAsync(collectionName, alias, applicationDetails); } , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult()); }
/// <summary> /// Sets a published application matching the given alias (short unique /// name) in the collection. /// </summary> /// <param name='operations'> /// Reference to the /// Microsoft.Azure.Management.RemoteApp.IPublishingOperations. /// </param> /// <param name='collectionName'> /// Required. Collection Name /// </param> /// <param name='alias'> /// Required. Alias of published application /// </param> /// <param name='applicationDetails'> /// Required. New details for the application /// </param> /// <returns> /// Definition for result of ModifyApplicaton operation. /// </returns> public static Task <ModifyApplicationResult> ModifyApplicationAsync(this IPublishingOperations operations, string collectionName, string alias, ApplicationDetailsParameter applicationDetails) { return(operations.ModifyApplicationAsync(collectionName, alias, applicationDetails, CancellationToken.None)); }
public void CanPublishModifyUnpublishApps() { using (var undoContext = UndoContext.Current) { undoContext.Start(); RemoteAppManagementClient client = GetRemoteAppManagementClient(); CollectionListResult serviceList = null; Assert.DoesNotThrow(() => { serviceList = client.Collections.List(); }); Assert.NotNull(serviceList); Assert.NotEmpty(serviceList.Collections); Collection activeCollection = null; ApplicationDetailsListParameter appDetailsList = new ApplicationDetailsListParameter(); PublishedApplicationDetails publishApp = new PublishedApplicationDetails(); string publishingAppName = TestUtilities.GenerateName("TestApp"); string publishingAppAlias = null; GetPublishedApplicationResult publishedAppResult = null; // Find collection in "Active" state so that publishing operations can be performed foreach (Collection ser in serviceList.Collections) { if (ser.Status == "Active") { activeCollection = ser; break; } } Assert.NotNull(activeCollection); // Publish an App { appDetailsList.DetailsList = new List <PublishedApplicationDetails>(); publishApp.AvailableToUsers = true; publishApp.Name = publishingAppName; publishApp.VirtualPath = "%systemroot%\\system32\\notepad.exe"; publishApp.IconPngUris = new IconPngUrisType(); // backend throws exception if this is null appDetailsList.DetailsList.Add(publishApp); PublishApplicationsResult publishResult = client.Publishing.PublishApplications(activeCollection.Name, appDetailsList); // Verify for publish operation Assert.NotNull(publishResult); Assert.NotEmpty(publishResult.ResultList); foreach (PublishingOperationResult oneResult in publishResult.ResultList) { Assert.True(oneResult.Success); publishingAppAlias = oneResult.ApplicationAlias; break; } } // Wait for app status to change to Published publishedAppResult = WaitForAppStatus(client, activeCollection.Name, publishingAppAlias, AppPublishingStatus.Published); // Modify Published application { PublishedApplicationDetails newAppDetails = publishedAppResult.Result; ApplicationDetailsParameter newAppDetailsParam = new ApplicationDetailsParameter(); newAppDetails.Name = TestUtilities.GenerateName("ModTestApp"); newAppDetailsParam.Details = newAppDetails; ModifyApplicationResult modifiedAppResult = client.Publishing.ModifyApplication(activeCollection.Name, publishingAppAlias, newAppDetailsParam); // Verify Modify app result Assert.NotNull(modifiedAppResult); Assert.NotNull(modifiedAppResult.Result); Assert.True(modifiedAppResult.StatusCode == HttpStatusCode.OK); } // Wait for app status to change to Published publishedAppResult = WaitForAppStatus(client, activeCollection.Name, publishingAppAlias, AppPublishingStatus.Published); // Unpublish the application { UnpublishApplicationsResult unpublishAppResult = client.Publishing.Unpublish(activeCollection.Name, new AliasesListParameter { AliasesList = { publishingAppAlias } }); // Verify unpublish app result Assert.NotNull(unpublishAppResult); Assert.NotEmpty(unpublishAppResult.ResultList); foreach (PublishingOperationResult oneResult in unpublishAppResult.ResultList) { Assert.True(oneResult.Success); } } } }