private void SaasDeleteNsgRule_Click()

in 2LCS/Forms/MainForm.cs [1794:1844]


        private void SaasDeleteNsgRule_Click(object sender, EventArgs e)
        {
            Cursor = Cursors.WaitCursor;
            NSGRule nsgRule = null;
            StringBuilder log = new StringBuilder();
            var tasks = new List<Task<string>>();
            foreach (DataGridViewRow row in SelectedDataGridView.SelectedRows)
            {
                var instance = (CloudHostedInstance)row.DataBoundItem;
                if (nsgRule == null)
                {
                    var networkSecurityGroup = _httpClientHelper.GetNetworkSecurityGroup(instance);
                    using var form = new ChooseNSG
                    {
                        NetworkSecurityGroup = networkSecurityGroup,
                        Text = $"Choose firewall rule to delete"
                    };
                    form.ShowDialog();
                    if (!form.Cancelled && (form.NSGRule != null))
                    {
                        nsgRule = form.NSGRule;
                        log.AppendLine($"Firewall rule to be deleted: {nsgRule.Name}, IP: {nsgRule.IpOrCidr}");
                        log.AppendLine();
                    }
                    else
                    {
                        break;
                    }
                }
                if (nsgRule != null)
                {
                    tasks.Add(Task.Run(() => new HttpClientHelper(_cookies) { LcsUrl = _lcsUrl, LcsUpdateUrl = _lcsUpdateUrl, LcsDiagUrl = _lcsDiagUrl, LcsProjectId = _selectedProject.Id.ToString() }.DeleteNsgRule(instance, nsgRule.Name)));
                }
            }
            Task.WhenAll(tasks).Wait();
            var logEntries = tasks.Select(x => x.Result).ToList();
            foreach (var entry in logEntries)
            {
                log.AppendLine(entry);
            }
            if (log.Length != 0)
            {
                var form = new LogDisplay
                {
                    LogEntries = log.ToString(),
                    Text = $"Log for deletion of firewall rule: {nsgRule.Name}"
                };
                form.Show();
            }
            Cursor = Cursors.Default;
        }