示例#1
0
        internal void LoadRuleSets()
        {
            pac.Enable(false);
            var enabled = true;

            pac.WorkAsync(new WorkAsyncInfo()
            {
                Message = "Loading rulesets",
                Work    = (worker, args) =>
                {
                    args.Result = PACHelper.GetRuleSets(serviceUrl);
                },
                PostWorkCallBack = (args) =>
                {
                    if (args.Error != null)
                    {
                        pac.ShowError(args.Error);
                    }
                    else if (args.Result is RuleSet[] rulesetlist)
                    {
                        AddRuleSets(rulesetlist);
                        LoadRules();
                        enabled = false;
                    }
                    pac.Enable(enabled);
                }
            });
示例#2
0
        private void CheckAnalysisStatus()
        {
            tmStatus.Enabled = false;
            pac.Enable(false);
            var enabled = true;

            pac.WorkAsync(new WorkAsyncInfo
            {
                Message       = "Checking analysis status",
                AsyncArgument = new { clientinfo = pac.PACClientInfo, url = txtStatusUrl.Text },
                Work          = (worker, args) =>
                {
                    var a          = args.Argument as dynamic;
                    var clientinfo = a.clientinfo as PACClientInfo;
                    var url        = a.url as string;
                    args.Result    = PACHelper.GetAnalysisStatus(clientinfo, url);
                },
                PostWorkCallBack = (args) =>
                {
                    if (args.Error != null)
                    {
                        panAnalyzing.Visible = false;
                        pac.ShowError(args.Error);
                    }
                    else if (args.Result is AnalysisStatus status)
                    {
                        txtRunCorrId.Text = status.RunCorrelationId.ToString();
                        SetStatus(status.Status, status.Progress);
                        if (status.Progress >= 100)
                        {
                            panAnalyzing.Visible = false;
                            SetCounts(status);
                            if (status.ResultFileUris != null && status.ResultFileUris.Length > 0)
                            {
                                txtResultFile.Text = status.ResultFileUris[0];
                                GetResultFile(status);
                                enabled = false;
                            }
                        }
                        else
                        {
                            tmStatus.Start();
                        }
                    }
                    pac.Enable(enabled);
                }
            });
        private PACClientInfo ConnectPAChecker()
        {
            var clientinfo = new PACClientInfo
            {
                ServiceUrl = GetServiceUrl(),
                Language   = GetLanguage()
            };

            if (!Guid.TryParse(txtClientId.Text, out clientinfo.ClientId))
            {
                pac.ShowError("Bad Client Guid");
                return(null);
            }
            if (cbRegion.SelectedItem == null)
            {
                pac.ShowError("Select Region");
                return(null);
            }
            try
            {
                if (rbSecret.Checked)
                {
                    if (!Guid.TryParse(txtTenantId.Text, out clientinfo.TenantId))
                    {
                        pac.ShowError("Bad Tenant Guid");
                        return(null);
                    }
                    clientinfo.ClientSec = txtClientSec.Text;
                }
                if (PACHelper.GetClient(clientinfo, PromptBehavior.SelectAccount) != null)
                {
                    pac.ai.WriteEvent($"Connect OK {cbRegion.Text}");
                }
            }
            catch (Exception ex)
            {
                pac.ShowError(ex, "Connect");
                return(null);
            }
            return(clientinfo);
        }
示例#4
0
 private void btnOpenSarif_Click(object sender, EventArgs e)
 {
     using (var od = new OpenFileDialog
     {
         CheckPathExists = true,
         InitialDirectory = !string.IsNullOrWhiteSpace(txtResultFile.Text) ? Path.GetDirectoryName(txtResultFile.Text) : "",
         DefaultExt = "sarif",
         Filter = "SARIF files|*.sarif|All files|*.*",
         Title = "Open SARIF result file"
     })
     {
         if (od.ShowDialog() == DialogResult.OK)
         {
             pac.ai.WriteEvent("OpenSarifFile");
             Reset();
             txtResultFile.Text = od.FileName;
             var sarif = File.ReadAllText(od.FileName);
             txtSarif.Text = sarif;
             ParseSarifLog(PACHelper.GetSarifFromString(sarif));
         }
     }
 }