internal static ApplicationList DeserializeApplicationList(JsonElement element) { Optional <IReadOnlyList <VirtualApplicationData> > value = default; Optional <string> nextLink = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("value")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <VirtualApplicationData> array = new List <VirtualApplicationData>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(VirtualApplicationData.DeserializeVirtualApplicationData(item)); } value = array; continue; } if (property.NameEquals("nextLink")) { nextLink = property.Value.GetString(); continue; } } return(new ApplicationList(Optional.ToList(value), nextLink.Value)); }
public async Task RemoteApplicationCrud() { string hostPoolName = "testRemoteApplicationCrudHP"; string applicationGroupName = "testRemoteApplicationCrudAG"; string resourceGroupName = Recording.GetVariable("DESKTOPVIRTUALIZATION_RESOURCE_GROUP", DefaultResourceGroupName); ResourceGroupResource rg = (ResourceGroupResource)await ResourceGroups.GetAsync(resourceGroupName); Assert.IsNotNull(rg); HostPoolCollection hostPoolCollection = rg.GetHostPools(); HostPoolData hostPoolData = new HostPoolData( DefaultLocation, HostPoolType.Pooled, LoadBalancerType.BreadthFirst, PreferredAppGroupType.Desktop); ArmOperation <HostPoolResource> opHostPoolCreate = await hostPoolCollection.CreateOrUpdateAsync( WaitUntil.Completed, hostPoolName, hostPoolData); VirtualApplicationGroupCollection agCollection = rg.GetVirtualApplicationGroups(); VirtualApplicationGroupData agData = new VirtualApplicationGroupData(DefaultLocation, opHostPoolCreate.Value.Data.Id, ApplicationGroupType.RemoteApp); ArmOperation <VirtualApplicationGroupResource> opApplicationGroupCreate = await agCollection.CreateOrUpdateAsync( WaitUntil.Completed, applicationGroupName, agData); Assert.IsNotNull(opApplicationGroupCreate); Assert.IsTrue(opApplicationGroupCreate.HasCompleted); Assert.AreEqual(opApplicationGroupCreate.Value.Data.Name, applicationGroupName); VirtualApplicationGroupResource railApplicationGroup = opApplicationGroupCreate.Value; VirtualApplicationCollection railApplications = railApplicationGroup.GetVirtualApplications(); AsyncPageable <VirtualApplicationResource> applications = railApplications.GetAllAsync(); Assert.IsNotNull(applications); VirtualApplicationData applicationData = new VirtualApplicationData(CommandLineSetting.DoNotAllow); applicationData.FilePath = "c:\\notepad.exe"; applicationData.IconPath = "c:\\notepad.exe"; applicationData.Description = "Note Pad"; applicationData.ShowInPortal = true; ArmOperation <VirtualApplicationResource> opCreate = await railApplications.CreateOrUpdateAsync(WaitUntil.Completed, "notepad", applicationData); Assert.IsNotNull(opCreate); Assert.AreEqual("testRemoteApplicationCrudAG/notepad", opCreate.Value.Data.Name); Assert.AreEqual("Note Pad", opCreate.Value.Data.Description); Response <VirtualApplicationResource> opGet = await railApplications.GetAsync("notepad"); Assert.IsNotNull(opGet); Assert.AreEqual("c:\\notepad.exe", opGet.Value.Data.FilePath); Assert.AreEqual("c:\\notepad.exe", opGet.Value.Data.IconPath); Assert.AreEqual("Note Pad", opGet.Value.Data.Description); applicationData.Description = "NotePad"; ArmOperation <VirtualApplicationResource> opUpdate = await railApplications.CreateOrUpdateAsync(WaitUntil.Completed, "notepad", applicationData); Assert.IsNotNull(opUpdate); Assert.AreEqual("testRemoteApplicationCrudAG/notepad", opUpdate.Value.Data.Name); Assert.AreEqual("NotePad", opUpdate.Value.Data.Description); ArmOperation opDelete = await opUpdate.Value.DeleteAsync(WaitUntil.Completed); Assert.IsNotNull(opDelete); Assert.AreEqual(200, opDelete.GetRawResponse().Status); opDelete = await opUpdate.Value.DeleteAsync(WaitUntil.Completed); Assert.IsNotNull(opDelete); Assert.AreEqual(204, opDelete.GetRawResponse().Status); try { await railApplications.GetAsync("notepad"); } catch (RequestFailedException ex) { Assert.AreEqual(404, ex.Status); } await opApplicationGroupCreate.Value.DeleteAsync(WaitUntil.Completed); await opHostPoolCreate.Value.DeleteAsync(WaitUntil.Completed); }