예제 #1
0
 public static void UpdateFrom(this ControlRisk threatRisk, Contracts.Risk.RiskReduce risk)
 {
     threatRisk.IsoImpact       = risk.IsoImpact;
     threatRisk.IsoProbability  = risk.IsoProbability;
     threatRisk.NsThreat        = risk.NsThreat;
     threatRisk.NsValue         = risk.NsValue;
     threatRisk.NsVulnerability = risk.NsVulnerability;
     threatRisk.Type            = risk.Type;
 }
예제 #2
0
 public static Contracts.Risk.RiskReduce ToContract(this ControlRisk risk)
 {
     return(new Contracts.Risk.RiskReduce()
     {
         IsoImpact = risk.IsoImpact,
         IsoProbability = risk.IsoProbability,
         NsThreat = risk.NsThreat,
         NsValue = risk.NsValue,
         NsVulnerability = risk.NsVulnerability,
         Type = risk.Type,
         Name = risk.RiskType.Name,
         RiskReduceId = risk.ControlRiskId
     });
 }
예제 #3
0
        public Contracts.Risk.RiskType CreateRiskType(Contracts.Risk.RiskType riskType)
        {
            if (string.IsNullOrWhiteSpace(riskType.Name))
            {
                throw new RAAPConflictException("Invalid/missing name");
            }
            using (var db = new RAAPEntities(GetConnectionString()))
            {
                if (db.RiskTypes.Any(r => r.Name == riskType.Name.Trim()))
                {
                    throw new RAAPConflictException("Name is already in use, please try another name.");
                }
                var dbRiskType = riskType.ToDataModel();
                db.RiskTypes.Add(dbRiskType);
                foreach (var asset in db.Assets)
                {
                    var threatRisk = new ThreatRisk()
                    {
                        RiskType = dbRiskType,
                    };
                    RiskCalculator.ResetRisk(threatRisk);
                    asset.ThreatRisks.Add(threatRisk);
                }
                foreach (var threat in db.Threats)
                {
                    var threatRisk = new ThreatRisk()
                    {
                        RiskType = dbRiskType,
                    };
                    RiskCalculator.ResetRisk(threatRisk);
                    threat.ThreatRisks.Add(threatRisk);
                }

                foreach (var assetThreat in db.Asset_Threat)
                {
                    var threatRisk = new ThreatRisk()
                    {
                        RiskType = dbRiskType,
                    };
                    RiskCalculator.ResetRisk(threatRisk);
                    assetThreat.ThreatRisks.Add(threatRisk);
                }

                foreach (var control in db.Controls)
                {
                    var controlRisk = new ControlRisk()
                    {
                        RiskType = dbRiskType,
                    };
                    control.ControlRisks.Add(controlRisk);
                }

                foreach (var assetThreatControl in db.AssetThreat_Control)
                {
                    var controlRisk = new ControlRisk()
                    {
                        RiskType = dbRiskType,
                    };
                    assetThreatControl.ControlRisks.Add(controlRisk);
                }

                db.SaveChanges();
                return(dbRiskType.ToContract());
            }
        }