Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
        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);
        }