public void MeasureFeatureAvailabilityEmpyIndicators() { var(_, product, _, feature) = TestDataFactory.BuildCustomerProductJourneyFeature(); var aggregate = new FeatureDailyAvailabilityAggregate(feature, new DatePeriodValue(OwlveyCalendar.StartJanuary2017, OwlveyCalendar.EndJanuary2017)); var(features_availabilities, _) = aggregate.MeasureAvailability(); Assert.Empty(features_availabilities); }
public async Task <MultiSeriesGetRp> GetDailyAvailabilitySeriesById(int featureId, DateTime start, DateTime end) { var entity = await this._dbContext.Features.Include(c => c.Indicators) .ThenInclude(c => c.Source) .SingleAsync(c => c.Id == featureId); foreach (var indicator in entity.Indicators) { var sourceItems = await this._dbContext.GetSourceItems(indicator.SourceId, start, end); indicator.Source.SourceItems = sourceItems; } var result = new MultiSeriesGetRp { Start = start, End = end, Name = entity.Name, Avatar = entity.Avatar }; var aggregator = new FeatureDailyAvailabilityAggregate(entity, new DatePeriodValue(start, end)); var(availability, indicators) = aggregator.MeasureAvailability(); result.Series.Add(new MultiSerieItemGetRp() { Name = "Availability", Avatar = entity.Avatar, Items = availability.Select(c => new SeriesItemGetRp(c.Date, c.Measure.Availability)).ToList() }); foreach (var indicator in indicators) { result.Series.Add(new MultiSerieItemGetRp() { Name = string.Format("SLI:{0}", indicator.Item1.Id), Avatar = indicator.Item1.Avatar, Items = indicator.Item2.Select(c => new SeriesItemGetRp(c.Date, c.Measure.Availability)).ToList() }); } return(result); }
public void MeasureFeatureAvailability() { var(_, product, _, feature) = TestDataFactory.BuildCustomerProductJourneyFeature(); var source = TestDataFactory.BuildSource(product); var sourceA = TestDataFactory.BuildSource(product); var indicator = IndicatorEntity.Factory.Create(feature, source, DateTime.Now, "/api/customer"); var sourceItems = SourceEntity.Factory.CreateItemsFromRange(source, OwlveyCalendar.StartJanuary2019, OwlveyCalendar.EndJanuary2019, 900, 1200, DateTime.Now, "test", SourceGroupEnum.Availability); foreach (var item in sourceItems) { source.SourceItems.Add(item); } var indicatorA = IndicatorEntity.Factory.Create(feature, source, DateTime.Now, "/api/customer"); var sourceItemsA = SourceEntity.Factory.CreateItemsFromRange(source, OwlveyCalendar.StartJanuary2019, OwlveyCalendar.EndJanuary2019, 900, 1200, DateTime.Now, "test", SourceGroupEnum.Availability); foreach (var item in sourceItemsA) { sourceA.SourceItems.Add(item); } feature.Indicators.Add(indicator); feature.Indicators.Add(indicatorA); var aggregate = new FeatureDailyAvailabilityAggregate(feature, new Core.Values.DatePeriodValue( OwlveyCalendar.StartJanuary2019, OwlveyCalendar.EndJanuary2019)); var(features_availabilities, _) = aggregate.MeasureAvailability(); Assert.Equal(31, features_availabilities.Count()); }