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; }
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 }); }
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()); } }