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); } });
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); }
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); } });
internal void LoadSolutions(Settings settings) { cbSolution.DataSource = null; if (pac.Service == null) { return; } cbSolution.OrganizationService = pac.Service; pac.WorkAsync(new WorkAsyncInfo { Message = "Loading solutions", Work = (worker, args) => { var qx = new QueryExpression("solution"); qx.ColumnSet.AddColumns("friendlyname", "solutionid", "uniquename", "version"); qx.AddOrder("friendlyname", OrderType.Ascending); qx.Criteria.AddCondition("ismanaged", ConditionOperator.Equal, false); qx.Criteria.AddCondition("isvisible", ConditionOperator.Equal, true); qx.Criteria.AddCondition("uniquename", ConditionOperator.NotEqual, "Default"); args.Result = pac.Service.RetrieveMultiple(qx); }, PostWorkCallBack = (args) => { if (args.Error != null) { pac.ShowError(args.Error); } else if (args.Result is EntityCollection solutions) { cbSolution.DataSource = solutions; } if (settings != null) { SettingsApplyToUI(settings); } CheckInputs(); } });