public async Task<bool> TryInitializeAsync(string id) { Console.WriteLine("Retrieving Resource: " + id); Resource = await ResourceController.GetResource(id); if (Resource == null) return false; if (string.IsNullOrEmpty(Resource.SubscriptionId)) { //need to create a VM Console.WriteLine("Creating VM"); this.IsCreating = true; Subscription = await ResourceController.GetAvailabeDeploymentSubscription(); ServiceName = await ResourceController.GetCloudServiceName(Resource); } else { Console.WriteLine("Retrieving Subscription: " + Resource.SubscriptionId); Subscription = await ResourceController.GetSubscription(Resource.SubscriptionId); ServiceName = Resource.CloudServiceName; } Provisioning = new ProvisioningController(Subscription.AzureManagementThumbnail, Subscription.AzureSubscriptionID); return true; }
public async Task<IActionResult> GetRdp(string groupId, string resourceId) { ScampResource res = await _resourceRepository.GetResource(resourceId); if (res == null) return new HttpStatusCodeResult(404); // not found // can user preform this action if (!(await CanManageResource(res, ResourceAction.Undefined))) return new HttpStatusCodeResult(403); // request denied, invalid permission ScampSubscription sub = await _settingsRepository.GetSubscription(res.SubscriptionId); var provisioningController = new ProvisioningController(sub.AzureManagementThumbnail, sub.AzureSubscriptionID); //Response.ContentType = "application/x-rdp"; Response.Headers.Add("content-disposition", new string[] { "attachment; filename =" + res.CloudServiceName + ".rdp" }); byte[] bytes = await provisioningController.GetRdpAsync(res.Name, res.CloudServiceName); var encoding = new System.Text.UTF8Encoding(); var sRes = encoding.GetString(bytes); return new ObjectResult(sRes) { StatusCode = 200 }; }