private double[] GetSecondaryLossMagnitudeSamples([NotNull] Risk risk) { double[] result = null; if (risk.LossMagnitude?.SecondaryLosses?.Any() ?? false) { result = new double[SamplesCount]; foreach (var loss in risk.LossMagnitude.SecondaryLosses) { if (loss.IsValid && (loss.Form == LossForm.CompetitiveAdvantage || loss.Form == LossForm.FinesJudgements || loss.Form == LossForm.Reputation)) { var samples = GetSamples(loss.MagnitudeMin, loss.MagnitudeMostLikely, loss.MagnitudeMax, loss.MagnitudeConfidence); if (samples != null) { for (var i = 0; i < SamplesCount; i++) { result[i] += samples[i]; } } } } } return(result); }
private double[] GetPrimaryLossMagnitudeSamples([NotNull] Risk risk) { double[] result = null; if (risk.LossMagnitude?.PrimaryLosses?.Any() ?? false) { result = new double[SamplesCount]; foreach (var loss in risk.LossMagnitude.PrimaryLosses) { if (loss.IsValid && (loss.Form == LossForm.Productivity || loss.Form == LossForm.Replacement || loss.Form == LossForm.Response)) { var samples = GetSamples(loss.MagnitudeMin, loss.MagnitudeMostLikely, loss.MagnitudeMax, loss.MagnitudeConfidence); if (samples != null) { for (var i = 0; i < SamplesCount; i++) { result[i] += samples[i]; } } } } } return(result); }
public static void SetRisk(this IThreatEventScenario scenario, Risk risk) { var model = scenario.Model; if (model != null) { var schemaManager = new QuantitativeRiskSchemaManager(model); schemaManager.SetRisk(scenario, risk); } }
public static Risk GetRisk(this IThreatEventScenario scenario) { Risk result = null; var model = scenario.Model; if (model != null) { var schemaManager = new QuantitativeRiskSchemaManager(model); result = schemaManager.GetRisk(scenario); } return(result); }