示例#1
0
 public void UpdateRiskType(Contracts.Risk.RiskType riskType)
 {
     if (string.IsNullOrWhiteSpace(riskType.Name))
     {
         throw new RAAPConflictException("Invalid/missing name");
     }
     using (var db = new RAAPEntities(GetConnectionString()))
     {
         var dbRiskType = db.RiskTypes.FirstOrDefault(r => r.RiskTypeId == riskType.RiskTypeId);
         if (dbRiskType == null)
         {
             throw new RAAPNotFoundException("Item not found.");
         }
         dbRiskType.Name        = riskType.Name;
         dbRiskType.Description = riskType.Description;
         db.SaveChanges();
     }
 }
示例#2
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());
            }
        }