public DebtMeasureValue MeasureDebt(DatePeriodValue period = null) { QualityMeasureValue measure = this.Measure(period); var result = new DebtMeasureValue(); var measures = this.JourneyMaps.Select(c => measure.MeasureDebt(c.Journey.GetSLO())).ToList(); result.AddRange(measures); return(result); }
public DebtMeasureValue Measure(DatePeriodValue period = null) { var measure = new DebtMeasureValue(); foreach (var journey in this.Journeys) { measure.Add(journey.Measure(period)); } return(measure); }
public DebtMeasureValue MeasureDebt(DatePeriodValue period = null) { var measure = this.Measure(period); var maps = this.Indicators.Select(c => c.Feature.JourneyMaps).ToList(); var services = maps.SelectMany(c => c.Select(d => d.Journey)).Distinct(new JourneyEntityCompare()); decimal availabilityDebt = 0; decimal latencyDebt = 0; decimal experienceDebt = 0; foreach (var item in services) { availabilityDebt += QualityUtils.MeasureDebt(measure.Availability, item.AvailabilitySlo); latencyDebt += QualityUtils.MeasureLatencyDebt(measure.Latency, item.LatencySlo); experienceDebt += QualityUtils.MeasureDebt(measure.Experience, item.ExperienceSlo); } var result = new DebtMeasureValue(availabilityDebt, latencyDebt, experienceDebt); return(result); }