Пример #1
0
        private MultiSeriesGetRp InternalGetDailyJourneySeries(ProductEntity product, DateTime start, DateTime end)
        {
            var result = new MultiSeriesGetRp
            {
                Start  = start,
                End    = end,
                Name   = product.Name,
                Avatar = product.Avatar
            };

            var period = new DatePeriodValue(start, end);

            var agg = new ProductDailyAggregate(product, period);

            var response = agg.MeasureQuality();

            var debtSerie = new MultiSerieItemGetRp()
            {
                Name   = "Debt",
                Avatar = product.Avatar
            };

            foreach (var item in response.OrderBy(c => c.Date))
            {
                debtSerie.Items.Add(new SeriesItemGetRp(item.Date, item.Measure.AvailabilityDebt));
            }
            result.Series.Add(debtSerie);

            return(result);
        }
Пример #2
0
        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);
        }