Exemplo n.º 1
0
        internal string ApplyPackage(CloudHostedInstance instance, DeployablePackage package)
        {
            StringBuilder log = new StringBuilder();

            package.LcsEnvironmentId = instance.EnvironmentId;
            var validationResponse = ValidateSandboxServicing(package);

            if (validationResponse.Success && !string.IsNullOrEmpty(validationResponse.Data.ToString()))
            {
                string platformRelease;
                try
                {
                    var releaseVersion = JsonConvert.DeserializeObject <ValidateSandboxServicingData>(validationResponse.Data.ToString());
                    platformRelease = releaseVersion.PlatformRelease;
                }
                catch
                {
                    platformRelease = validationResponse.Data.ToString();
                }
                log.AppendLine($"{instance.DisplayName}: Package deployment validation successful.");
                var deploymentResponse = StartSandboxServicing(package, platformRelease);
                log.AppendLine($"{instance.DisplayName}: {deploymentResponse.Message}");
                log.AppendLine();
            }
            else
            {
                log.AppendLine($"{instance.DisplayName}: Package deployment validation failed.");
                log.AppendLine($"{instance.DisplayName}: {validationResponse.Message}");
                log.AppendLine();
            }
            return(log.ToString());
        }
Exemplo n.º 2
0
        internal async Task <string> DeleteNsgRule(CloudHostedInstance instance, string rule)
        {
            string url;

            if (GetDeploymentEnvironmentTypeInfo(instance.EnvironmentId) == DeploymentEnvironmentType.MicrosoftManagedServiceFabric)
            {
                url = $"{LcsUrl}/EnvironmentServicingV2/SFDeleteNetworkSecurityRules/{LcsProjectId}";
            }
            else
            {
                url = $"{LcsUrl}/Environment/DeleteNetworkSecurityRules/{LcsProjectId}";
            }
            var parameters = $"lcsEnvironmentId={instance.EnvironmentId}&rulesToDelete%5B%5D={rule}";

            using (_stringContent = new StringContent(parameters, Encoding.UTF8, "application/x-www-form-urlencoded"))
            {
                SetRequestVerificationToken($"{LcsUrl}/V2");
                var result = await _httpClient.PostAsync(url, _stringContent);

                result.EnsureSuccessStatusCode();
                var responseBody = result.Content.ReadAsStringAsync().Result;
                var response     = JsonConvert.DeserializeObject <Response>(responseBody);
                if (response.Success)
                {
                    return($"Successfully deleted firewall rule {rule} for instance {instance.DisplayName}");
                }
                else
                {
                    return($"Could not delete firewall rule {rule} for instance {instance.DisplayName}");
                }
            }
        }
Exemplo n.º 3
0
        internal async Task <bool> AddNsgRule(CloudHostedInstance instance, string ruleName, string ipOrCidr)
        {
            string parameters, url;

            if (GetDeploymentEnvironmentTypeInfo(instance.EnvironmentId) == DeploymentEnvironmentType.MicrosoftManagedServiceFabric)
            {
                parameters = $"lcsEnvironmentId={instance.EnvironmentId}&newRuleName={ruleName}&newRuleIpOrCidr={ipOrCidr}&newRuleService=AzureSQL";
                url        = $"{LcsUrl}/EnvironmentServicingV2/SFAddNetworkSecurityRule/{LcsProjectId}";
            }
            else
            {
                parameters = $"lcsEnvironmentId={instance.EnvironmentId}&newRuleName={ruleName}&newRuleIpOrCidr={ipOrCidr}&newRuleService=RDP";
                url        = $"{LcsUrl}/Environment/AddNetworkSecurityRule/{LcsProjectId}";
            }
            using (_stringContent = new StringContent(parameters, Encoding.UTF8, "application/x-www-form-urlencoded"))
            {
                SetRequestVerificationToken($"{LcsUrl}/V2");
                var result = await _httpClient.PostAsync(url, _stringContent);

                result.EnsureSuccessStatusCode();
                var responseBody = result.Content.ReadAsStringAsync().Result;
                var response     = JsonConvert.DeserializeObject <Response>(responseBody);
                return(response.Success);
            }
        }
Exemplo n.º 4
0
 internal NetworkSecurityGroup GetNetworkSecurityGroup(CloudHostedInstance instance)
 {
     try
     {
         var result = _httpClient.GetAsync($"{LcsUrl}/Environment/GetNetworkSecurityGroup/{LcsProjectId}?lcsEnvironmentId={instance.EnvironmentId}&_={DateTimeOffset.Now.ToUnixTimeSeconds()}").Result;
         result.EnsureSuccessStatusCode();
         var responseBody = result.Content.ReadAsStringAsync().Result;
         var response     = JsonConvert.DeserializeObject <Response>(responseBody);
         if (!response.Success || response.Data == null)
         {
             return(null);
         }
         var settings = new JsonSerializerSettings
         {
             NullValueHandling     = NullValueHandling.Ignore,
             MissingMemberHandling = MissingMemberHandling.Ignore
         };
         var NSG = JsonConvert.DeserializeObject <NetworkSecurityGroup>(response.Data.ToString(), settings);
         return(NSG);
     }
     catch
     {
         return(null);
     }
 }
Exemplo n.º 5
0
        internal string GetDiagEnvironmentId(CloudHostedInstance instance)
        {
            var result = _httpClient.GetAsync($"{LcsUrl}/Environment/GetDiagEnvironmentId/{LcsProjectId}?environmentId={instance.EnvironmentId}&_={DateTimeOffset.Now.ToUnixTimeSeconds()}").Result;

            result.EnsureSuccessStatusCode();
            var responseBody = result.Content.ReadAsStringAsync().Result;
            var response     = JsonConvert.DeserializeObject <Response>(responseBody);

            return(response.Success && response.Data != null?response.Data.ToString() : null);
        }
Exemplo n.º 6
0
        internal List <RDPConnectionDetails> GetRdpConnectionDetails(CloudHostedInstance instance)
        {
            var list = new List <RDPConnectionDetails>();

            //check RDP availability
            foreach (var vm in instance.Instances)
            {
                var result = _httpClient.GetAsync($"{LcsUrl}/DeploymentPortal/IsRdpResourceAvailable/{LcsProjectId}/?topologyInstanceId={instance.InstanceId}&virtualMachineInstanceName={vm.MachineName}&deploymentItemName={vm.ItemName}&azureSubscriptionId={instance.AzureSubscriptionId}&group=0&isARMTopology={instance.IsARMTopology}&nsgWarningDisplayed=false&_={DateTimeOffset.Now.ToUnixTimeSeconds()}").Result;
                result.EnsureSuccessStatusCode();
                var responseBody       = result.Content.ReadAsStringAsync().Result;
                var rdpPresentResponse = JsonConvert.DeserializeObject <Response>(responseBody);
                if (!rdpPresentResponse.Success)
                {
                    continue;
                }
                _httpClient.DefaultRequestHeaders.Remove("Accept");
                _httpClient.DefaultRequestHeaders.Remove("X-Requested-With");
                _httpClient.DefaultRequestHeaders.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
                _httpClient.DefaultRequestHeaders.Add("Upgrade-Insecure-Requests", "1");

                result = _httpClient.GetAsync($"{LcsUrl}/DeploymentPortal/IsRdpResourceAvailable/{LcsProjectId}/?topologyInstanceId={instance.InstanceId}&virtualMachineInstanceName={vm.MachineName}&deploymentItemName={vm.ItemName}&azureSubscriptionId={instance.AzureSubscriptionId}&group=0&isARMTopology={instance.IsARMTopology}&nsgWarningDisplayed=false&_={DateTimeOffset.Now.ToUnixTimeSeconds()}&isDownloadEnabled=True").Result;
                result.EnsureSuccessStatusCode();
                responseBody = result.Content.ReadAsStringAsync().Result;
                var line1 = responseBody.Split('\r', '\n').FirstOrDefault();
                if (line1 == null)
                {
                    continue;
                }
                var splited = line1.Split(':');

                _httpClient.DefaultRequestHeaders.Remove("Accept");
                _httpClient.DefaultRequestHeaders.Add("Accept", "*/*");
                _httpClient.DefaultRequestHeaders.Add("X-Requested-With", "XMLHttpRequest");
                _httpClient.DefaultRequestHeaders.Remove("Upgrade-Insecure-Requests");

                vm.Credentials = GetCredentials(instance.EnvironmentId, vm.ItemName);

                var localAdmin = vm.Credentials.Where(x => x.Key.Contains("Local admin")).ToDictionary(x => x.Key, x => x.Value);

                var username = localAdmin.First().Key.Split('\\');
                var domain   = username[0].Split('-')[2];

                var rdp = new RDPConnectionDetails
                {
                    Address  = splited[2],
                    Port     = splited[3],
                    Domain   = domain,
                    Username = username[1],
                    Password = localAdmin.First().Value,
                    Machine  = vm.MachineName
                };
                list.Add(rdp);
            }
            return(list);
        }
Exemplo n.º 7
0
        internal ActionDetails GetOngoingActionDetails(CloudHostedInstance instance)
        {
            var result = _httpClient.GetAsync($"{LcsUrl}/Environment/GetOngoingActionDetails/{LcsProjectId}?environmentId={instance.EnvironmentId}").Result;

            result.EnsureSuccessStatusCode();
            var responseBody = result.Content.ReadAsStringAsync().Result;
            var response     = JsonConvert.DeserializeObject <Response>(responseBody);

            return(!response.Success
                    ? null
                    : response.Data == null ? null : JsonConvert.DeserializeObject <ActionDetails>(response.Data.ToString()));
        }
Exemplo n.º 8
0
        internal async Task <bool> StartStopDeployment(CloudHostedInstance instance, string action)
        {
            var parameters = $"{action}=&ActivityId={instance.ActivityId}&ProductName={WebUtility.UrlEncode(instance.ProductName)}&TopologyName={instance.TopologyName}&TopologyInstanceId={instance.InstanceId}&AzureSubscriptionId={instance.AzureSubscriptionId}&EnvironmentGroup=0";

            using (_stringContent = new StringContent(parameters, Encoding.UTF8, "application/x-www-form-urlencoded"))
            {
                SetRequestVerificationToken($"{LcsUrl}/V2");
                var result = await _httpClient.PostAsync($"{LcsUrl}/DeploymentPortal/StartStopDeployment/{LcsProjectId}", _stringContent);

                result.EnsureSuccessStatusCode();
                var responseBody = result.Content.ReadAsStringAsync().Result;
                return(responseBody == "true");
            }
        }
Exemplo n.º 9
0
        internal BuildInfoDetails GetEnvironmentBuildInfoDetails(CloudHostedInstance instance, string environmentId)
        {
            var result = _httpClient.GetAsync(GetEnvironmentBuildInfoDetailsUrl(instance, environmentId.ToString())).Result;

            result.EnsureSuccessStatusCode();
            var responseBody = result.Content.ReadAsStringAsync().Result;
            var response     = JsonConvert.DeserializeObject <BuildInfoDetails>(responseBody);

            if (response != null)
            {
                response.BuildInfoTreeView.RemoveAll(x => x.ParentId == null);
            }
            return(response);
        }
Exemplo n.º 10
0
        internal async Task <bool> DeleteEnvironment(CloudHostedInstance instance)
        {
            var parameters = $"delete=&ActivityId={instance.ActivityId}&ProductName={WebUtility.UrlEncode(instance.ProductName)}&TopologyName={instance.TopologyName}&TopologyInstanceId={instance.InstanceId}&AzureSubscriptionId={instance.AzureSubscriptionId}&EnvironmentGroup=0&EnvironmentId={instance.EnvironmentId}&PreserveCustomerSignOff=false";

            using (_stringContent = new StringContent(parameters, Encoding.UTF8, "application/x-www-form-urlencoded"))
            {
                SetRequestVerificationToken($"{LcsUrl}/V2");
                var result = await _httpClient.PostAsync($"{LcsUrl}/Environment/DeleteEnvironment/{LcsProjectId}", _stringContent);

                result.EnsureSuccessStatusCode();
                var responseBody = result.Content.ReadAsStringAsync().Result;
                var response     = JsonConvert.DeserializeObject <Response>(responseBody);
                return(response.Success);
            }
        }
Exemplo n.º 11
0
        internal async Task <bool> AddNsgRule(CloudHostedInstance instance, string ruleName, string ipOrCidr)
        {
            var parameters = $"lcsEnvironmentId={instance.EnvironmentId}&newRuleName={ruleName}&newRuleIpOrCidr={ipOrCidr}&newRuleService=RDP";

            using (_stringContent = new StringContent(parameters, Encoding.UTF8, "application/x-www-form-urlencoded"))
            {
                SetRequestVerificationToken($"{LcsUrl}/V2");
                var result = await _httpClient.PostAsync($"{LcsUrl}/Environment/AddNetworkSecurityRule/{LcsProjectId}", _stringContent);

                result.EnsureSuccessStatusCode();
                var responseBody = result.Content.ReadAsStringAsync().Result;
                var response     = JsonConvert.DeserializeObject <Response>(responseBody);
                return(response.Success);
            }
        }
Exemplo n.º 12
0
        private string ParseCustomLink(string template, CloudHostedInstance instance)
        {
            var replacements = new Dictionary <string, string>();

            foreach (var prop in instance.GetType().GetProperties())
            {
                var value = "";
                var val   = prop.GetValue(instance, null);
                if (val != null)
                {
                    value = val.ToString();
                }
                replacements.Add(prop.Name, value);
            }
            return(template.FormatPlaceholders(replacements));
        }
Exemplo n.º 13
0
 private void vmCombo_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (vmCombo.SelectedIndex != -1)
     {
         CloudHostedInstance cloudHostedInstance = vmCombo.SelectedItem as CloudHostedInstance;
         if (cloudHostedInstance != null)
         {
             MainWindow mainWindow = Application.Current.MainWindow as MainWindow;
             mainWindow.SetPersonalVM(cloudHostedInstance.EnvironmentId);
             if (cloudHostedInstance.EnvironmentId != environmentId)
             {
                 ClearDefaultUser_Click(null, null);
             }
         }
     }
 }
Exemplo n.º 14
0
        internal ServiceRestartResponseData RestartService(CloudHostedInstance instance, string serviceTorestart)
        {
            var parameters = $"lcsEnvironmentId={instance.EnvironmentId}&axServiceName={serviceTorestart}";

            using (_stringContent = new StringContent(parameters, Encoding.UTF8, "application/x-www-form-urlencoded"))
            {
                SetRequestVerificationToken($"{LcsUrl}/V2");
                var result = _httpClient.PostAsync($"{LcsUrl}/EnvironmentServicingV2/RestartService/{LcsProjectId}", _stringContent).Result;
                result.EnsureSuccessStatusCode();
                var responseBody = result.Content.ReadAsStringAsync().Result;
                var response     = JsonConvert.DeserializeObject <Response>(responseBody);
                return(!response.Success
                    ? null
                    : response.Data == null ? null : JsonConvert.DeserializeObject <ServiceRestartResponseData>(response.Data.ToString()));
            }
        }
Exemplo n.º 15
0
        internal async Task <bool> DeleteNsgRule(CloudHostedInstance instance, string rule)
        {
            var parameters = $"lcsEnvironmentId={instance.EnvironmentId}&rulesToDelete%5B%5D={rule}";

            using (_stringContent = new StringContent(parameters, Encoding.UTF8, "application/x-www-form-urlencoded"))
            {
                SetRequestVerificationToken($"{LcsUrl}/V2/EnvironmentDetailsV3New/{LcsProjectId}?EnvironmentId={instance.EnvironmentId}&IsDiagnosticsEnabledEnvironment={instance.IsDiagnosticsEnabledEnvironment}");
                var result = await _httpClient.PostAsync($"{LcsUrl}/Environment/DeleteNetworkSecurityRules/{LcsProjectId}", _stringContent);

                result.EnsureSuccessStatusCode();
                _httpClient.DefaultRequestHeaders.Remove("__RequestVerificationToken");
                var responseBody = result.Content.ReadAsStringAsync().Result;
                var response     = JsonConvert.DeserializeObject <Response>(responseBody);
                return(response.Success);
            }
        }
Exemplo n.º 16
0
        internal int GetBuildInfoEnvironmentId(CloudHostedInstance instance)
        {
            var result = _httpClient.GetAsync(GetEnvironmentBuildInfoIdUrl(instance)).Result;

            result.EnsureSuccessStatusCode();
            var responseBody = result.Content.ReadAsStringAsync().Result;
            var environments = JsonConvert.DeserializeObject <List <BuildInfoEnvironment> >(responseBody);

            if (environments != null && environments.Count > 0)
            {
                return(environments.First().Value);
            }
            else
            {
                return(0);
            }
        }
Exemplo n.º 17
0
        private void Page_Loaded(object sender, RoutedEventArgs e)
        {
            MainWindow mainWindow = Application.Current.MainWindow as MainWindow;

            allWMS = mainWindow.AllWMs;
            vmCombo.ItemsSource = allWMS;

            CloudHostedInstance personalInstance = null;

            if (!string.IsNullOrEmpty(Properties.Settings.Default.SelectedPersonalVM))
            {
                foreach (var item in allWMS)
                {
                    if (item.EnvironmentId == Properties.Settings.Default.SelectedPersonalVM)
                    {
                        personalInstance = item;
                        break;
                    }
                }
                if (personalInstance != null)
                {
                    environmentId        = personalInstance.EnvironmentId;
                    vmCombo.SelectedItem = personalInstance;
                }
            }
            MinimizeSetting.IsChecked = Properties.Settings.Default.MimimizeOnStartRDP;
            Span.IsChecked            = Properties.Settings.Default.Span;
            Resolution.Value          = Properties.Settings.Default.Resolution;
            Multimon.IsChecked        = Properties.Settings.Default.Multimon;

            RDPConnectionDetails connectionDetails = mainWindow.GetDefaultUser();

            if (connectionDetails == null)
            {
                ClearDefaultUser.IsEnabled = false;
                UserName.Content           = Properties.Resources.NoDefaultUser;
            }
            else
            {
                ClearDefaultUser.IsEnabled = true;
                UserName.Content           = string.Format(Properties.Resources.ClearDefaultUserTitle, connectionDetails.Username);
            }

            RotationSpeed.Text = Properties.Settings.Default.RotationSpeed;
        }
Exemplo n.º 18
0
        internal List <DeployablePackage> GetPagedDeployablePackageList(CloudHostedInstance instance)
        {
            const int numberOfPackagesRequested = 50;
            int       numberOfPackagesReturned;
            var       packageList = new List <DeployablePackage>();
            var       pageNumber  = 0;

            SetRequestVerificationToken($"{LcsUrl}/V2");
            do
            {
                pageNumber++;
                var pagingParams = new ProjectsPaging()
                {
                    DynamicPaging = new DynamicPaging()
                    {
                        StartPosition  = pageNumber * numberOfPackagesRequested - numberOfPackagesRequested,
                        ItemsRequested = numberOfPackagesRequested
                    }
                };
                var pagingParamsJson = JsonConvert.SerializeObject(pagingParams, new JsonSerializerSettings {
                    TypeNameHandling = TypeNameHandling.Auto
                });

                using (_stringContent = new StringContent(pagingParamsJson, Encoding.UTF8, "application/json"))
                {
                    var result = _httpClient.PostAsync(GetPagedDeployablePackageListUrl(instance), _stringContent).Result;
                    result.EnsureSuccessStatusCode();

                    var responseBody = result.Content.ReadAsStringAsync().Result;
                    var response     = JsonConvert.DeserializeObject <Response>(responseBody);
                    if (response.Success && response.Data != null)
                    {
                        var packages = JsonConvert.DeserializeObject <PackagesData>(response.Data.ToString()).Results;
                        numberOfPackagesReturned = packages.Count;
                        packageList.AddRange(packages);
                    }
                    else
                    {
                        numberOfPackagesReturned = 0;
                    }
                }
            }while (numberOfPackagesReturned == numberOfPackagesRequested);
            return(packageList);
        }
Exemplo n.º 19
0
        internal List <ActionDetails> GetEnvironmentHistoryDetails(CloudHostedInstance instance)
        {
            const int historyItemsCount = 40;

            var pagingParams = new PagingParameters()
            {
                DynamicPaging = new DynamicPaging()
                {
                    StartPosition  = 0,
                    ItemsRequested = historyItemsCount
                }
            };
            var pagingParamsJson = JsonConvert.SerializeObject(pagingParams, new JsonSerializerSettings {
                TypeNameHandling = TypeNameHandling.Auto
            });

            using (_stringContent = new StringContent(pagingParamsJson, Encoding.UTF8, "application/json"))
            {
                SetRequestVerificationToken($"{LcsUrl}/V2");
                var result = _httpClient.PostAsync($"{LcsUrl}/Environment/GetEnvironmentHistoryDetails/{LcsProjectId}?environmentId={instance.EnvironmentId}&_={DateTimeOffset.Now.ToUnixTimeSeconds()}", _stringContent).Result;
                result.EnsureSuccessStatusCode();
                var settings = new JsonSerializerSettings
                {
                    NullValueHandling     = NullValueHandling.Ignore,
                    MissingMemberHandling = MissingMemberHandling.Ignore
                };

                var responseBody = result.Content.ReadAsStringAsync().Result;
                var response     = JsonConvert.DeserializeObject <Response>(responseBody);
                if (response.Success)
                {
                    var data = JsonConvert.DeserializeObject <EnvironmentHistoryDetailsData>(response.Data.ToString(), settings);
                    if (data != null)
                    {
                        return(data.Results);
                    }
                }
                return(null);
            }
        }
Exemplo n.º 20
0
        internal string ApplyPackage(CloudHostedInstance instance, DeployablePackage package)
        {
            StringBuilder log = new StringBuilder();

            package.LcsEnvironmentId = instance.EnvironmentId;
            var validationResponse = ValidateSandboxServicing(package);

            if (validationResponse.Success && !string.IsNullOrEmpty(validationResponse.Data.ToString()))
            {
                log.AppendLine($"{instance.DisplayName}: Package deployment validation successful.");
                var deploymentResponse = StartSandboxServicing(package, validationResponse.Data.ToString());
                log.AppendLine($"{instance.DisplayName}: {deploymentResponse.Message}");
                log.AppendLine();
            }
            else
            {
                log.AppendLine($"{instance.DisplayName}: Package deployment validation failed.");
                log.AppendLine($"{instance.DisplayName}: {validationResponse.Message}");
                log.AppendLine();
            }
            return(log.ToString());
        }
Exemplo n.º 21
0
        private void OnWorkerDoWork(object sender, DoWorkEventArgs e)
        {
            worker.ReportProgress(25, "Initializing LCS connections");

            CookieContainer cookies = MainForm.GetUriCookieContainer();

            if (cookies == null)
            {
                return;
            }

            HttpClientHelper httpClientHelper = new HttpClientHelper(cookies)
            {
                LcsUrl       = URIHandler.LCS_URL,
                LcsUpdateUrl = URIHandler.LCS_UPDATE_URL,
                LcsDiagUrl   = URIHandler.LCS_DIAG_URL
            };

            if (rdpData.Command.ToLower() == "connectrdp")
            {
                worker.ReportProgress(20, "Loading project");

                httpClientHelper.ChangeLcsProjectId(rdpData.ProjectId);

                ProjectData project = httpClientHelper.GetProject(rdpData.ProjectId);
                projectNameLabel.Invoke(new MethodInvoker(delegate { projectNameLabel.Text = project.Name; }));

                worker.ReportProgress(50, "Loading cloud-hosted instances");

                CloudHostedInstance chInstance = httpClientHelper.GetCheInstances().FirstOrDefault(e => e.DisplayName == rdpData.Environment);

                if (chInstance != null)
                {
                    if (chInstance.CanShowRdp)
                    {
                        worker.ReportProgress(80, "Loading connection details");

                        var rdpList = httpClientHelper.GetRdpConnectionDetails(chInstance);
                        RDPConnectionDetails rdpEntry = null;

                        if (rdpList != null && rdpList.Count > 0)
                        {
                            if (rdpList.Count > 1)
                            {
                                rdpEntry = MainForm.ChooseRdpLogonUser(rdpList);
                            }
                            else
                            {
                                rdpEntry = rdpList.First();
                            }

                            if (rdpEntry != null)
                            {
                                using (new RdpCredentials(rdpEntry.Address, $"{rdpEntry.Domain}\\{rdpEntry.Username}", rdpEntry.Password))
                                {
                                    var rdcProcess = new Process
                                    {
                                        StartInfo =
                                        {
                                            FileName  = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\mstsc.exe"),
                                            Arguments = "/v " + $"{rdpEntry.Address}:{rdpEntry.Port}"
                                        }
                                    };

                                    worker.ReportProgress(95, "Starting connection..");

                                    rdcProcess.Start();
                                }
                            }
                            else
                            {
                                MessageBox.Show($"Operation cancelled", "Operation failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                        }
                        else
                        {
                            MessageBox.Show($"Cannot retrieve RDP connection details. This instance is not accessible through RDP or you do not have access to see those details. Check if you have Environment Manager role.", "Operation failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    else
                    {
                        MessageBox.Show($"Cannot retrieve RDP connection details. This instance is not accessible through RDP or you do not have access to see those details. Check if you have Environment Manager role.", "Operation failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                else
                {
                    MessageBox.Show($"Cannot find cloud-hosted instance with ID {rdpData.Environment} on project {project.Name}", "Operation failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                MessageBox.Show("Unsupported operation", "Operation failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Exemplo n.º 22
0
 internal string GetEnvironmentBuildInfoIdUrl(CloudHostedInstance instance)
 {
     return($"{LcsDiagUrl}/BuildInfo/GetEnvironments/{LcsProjectId}?lcsEnvironmentId={instance.EnvironmentId}&environmentId=0&_={DateTimeOffset.Now.ToUnixTimeSeconds()}");
 }
Exemplo n.º 23
0
 public string GetEnvironmentDetailsUrl(CloudHostedInstance instance)
 {
     return($"{LcsUrl}/V2/EnvironmentDetailsV3New/{LcsProjectId}?EnvironmentId={instance.EnvironmentId}&IsDiagnosticsEnabledEnvironment={instance.IsDiagnosticsEnabledEnvironment}");
 }
Exemplo n.º 24
0
 internal string GetPagedDeployablePackageListUrl(CloudHostedInstance instance)
 {
     return($"{LcsUrl}/Environment/GetPagedDeployablePackageList/{LcsProjectId}?lcsEnvironmentActionId=2&lcsEnvironmentId={instance.EnvironmentId}");
 }