private void MapEngagement(EngagementEntity engagementEntity, Dashboard dashboard) { dashboard.Status = EngagementStatus.LookupByValue(engagementEntity.EngagementStatusId)?.Name; dashboard.ExternalKickoffDate = engagementEntity.ExternalKickoffDate?.ToString("M/d/yyyy"); dashboard.DeliverableDueDate = engagementEntity.DeliverableDueDate?.ToString("M/d/yyyy"); dashboard.EngagementManager = engagementEntity.EngagementManager; }
public void MapRiskGauge(EngagementEntity engagementEntity, Dashboard dashboard) { var highchart = new Highchart(); var series = new Series { Type = "pie", Name = "Severity", InnerSize = "70%" }; dashboard.RiskScore = engagementEntity.RiskScore?.ToString("N1") ?? "N/A"; Func <ThreatLevel, decimal?, List <Data> > buildData = (threatLevel, nextThreatLevelValue) => { var dataSlices = new List <Data>(); for (var slice = threatLevel.Value; slice < nextThreatLevelValue; slice += 0.1m) { dataSlices.Add(new Data { Name = 5 == slice ? ThreatLevel.LookupByValue(engagementEntity.RiskScore).Name : string.Empty, Color = engagementEntity.RiskScore >= slice ? threatLevel.Color : "#eee", Value = 0.1m }); } return(dataSlices); }; series.Data.AddRange(buildData(ThreatLevel.VeryLow, ThreatLevel.Low.Value)); series.Data.AddRange(buildData(ThreatLevel.Low, ThreatLevel.Moderate.Value)); series.Data.AddRange(buildData(ThreatLevel.Moderate, ThreatLevel.High.Value)); series.Data.AddRange(buildData(ThreatLevel.High, ThreatLevel.VeryHigh.Value)); series.Data.AddRange(buildData(ThreatLevel.VeryHigh, 10m)); highchart.Series.Add(series); dashboard.RiskGauge = highchart; }
private void SetUpMocks() { _engagementEntity = new EngagementEntity(); _mockEngagementRepository.Setup(x => x.Get(It.IsAny <int>())) .Returns(_engagementEntity); _importEntity = new ImportEntity { Id = 1 }; _mockImportRepository.Setup(x => x.GetLatest(It.IsAny <int>())) .Returns(_importEntity); _customerEntity = new CustomerEntity(); _mockCustomerRepository.Setup(x => x.Get(It.IsAny <int>())) .Returns(_customerEntity); _riskEntities = new List <RiskEntity> { new RiskEntity { Impact = 3, Likelihood = 6, FinalScore = 7 } }; _mockRiskRepository.Setup(x => x.GetByEngagementId(It.IsAny <int>())) .Returns(_riskEntities); _vulnerabilityEntities = new List <VulnerabilityEntity> { new VulnerabilityEntity { CvssScore = 1m, RiskLevelBytes = Encode(ThreatLevel.High.Name) } }; _mockVulnerabilityRepository.Setup(x => x.GetByEngagementId(It.IsAny <int>())) .Returns(_vulnerabilityEntities); _hostEntities = new List <HostEntity> { new HostEntity { OperatingSystemBytes = Encode("Operating System"), HostVulnerabilities = new List <HostVulnerabilityEntity> { new HostVulnerabilityEntity { Vulnerability = new VulnerabilityEntity { CvssScore = 10m } } } } }; _mockHostRepository.Setup(x => x.GetByEngagementId(It.IsAny <int>())) .Returns(_hostEntities); _governanceControlEntities = new List <GovernanceControlEntity> { new GovernanceControlEntity { ThreatLevelId = 1, CmmiStatusId = 2 } }; _mockGovernanceControlRepository.Setup(x => x.GetByEngagementId(It.IsAny <int>())) .Returns(_governanceControlEntities); _phaseEntities = new List <PhaseEntity> { new PhaseEntity { Name = "Phase", Risks = _riskEntities } }; _mockPhaseRepository.Setup(x => x.GetByEngagementId(It.IsAny <int>())) .Returns(_phaseEntities); _importEntities = new List <ImportEntity> { new ImportEntity { Id = 1 } }; _mockImportRepository.Setup(x => x.GetByEngagementId(It.IsAny <int>())) .Returns(_importEntities); _complianceEntities = new List <ComplianceEntity> { new ComplianceEntity { Id = 1 } }; _mockComplianceRepository.Setup(x => x.GetByEngagementId(It.IsAny <int>(), It.IsAny <int>())) .Returns(_complianceEntities); _complianceSchemeEntities = new List <ComplianceSchemeEntity> { new ComplianceSchemeEntity { Id = 1 } }; _mockComplianceSchemeRepository.Setup(x => x.GetByEngagementId(It.IsAny <int>())) .Returns(_complianceSchemeEntities); }