コード例 #1
0
 public Tuple <DateTime, double?[]>[] GetSamples(int[] trendTagIds, DateTime startTime,
                                                 DateTime?endTime, int rarerer)
 {
     using (ITrendsRepository repository = _repositoryFactory.Create()) {
         return(repository.GetSamples(trendTagIds, startTime, endTime, rarerer));
     }
 }
コード例 #2
0
 public void Run()
 {
     using (ITrendsRepository repository = _repositoryFactory.Create()) {
         DeleteOldTrendSamples(repository);
         ProcessTrends(repository);
     }
 }
コード例 #3
0
 public Tuple <DateTime, double?[]>[] GetPage(int[] trendTagIds, CriteriaType criteriaType,
                                              DateTime criteria, int maxCount)
 {
     using (ITrendsRepository repository = _repositoryFactory.Create()) {
         return(repository.GetPage(trendTagIds, criteriaType, criteria, maxCount));
     }
 }
コード例 #4
0
 private void DeleteOldTrendSamples(ITrendsRepository repository)
 {
     if (!_timeToStore.HasValue)
     {
         return;
     }
     repository.DeleteOld(_timeService.UtcTime - _timeToStore.Value);
 }
コード例 #5
0
        private void ProcessTrends(ITrendsRepository repository)
        {
            DateTime time         = _timeService.UtcTime;
            var      infoToInsert = (from info in _trendsInfo.Values
                                     where info.TriggerValue()
                                     let value = info.Value()
                                                 where value.HasValue
                                                 select new Tuple <int, double>(info.Id, value.Value)).ToArray();

            if (infoToInsert.Any())
            {
                repository.Insert(time, _tableSelector.NextTable(), infoToInsert);
            }
        }
コード例 #6
0
        public ITrendsRunTarget Create(string connectionString, IProject project, TrendCategory trendCategory,
                                       ITimeService timeService)
        {
            var npgsqlConnectionFactory = new NpgsqlConnectionFactory(connectionString);
            var repositoryFactory       = new TrendsRepositoryFactory(
                npgsqlConnectionFactory,
                trendCategory.Id,
                trendCategory.TrendTags.Select(t => t.Id).ToArray());

            using (ITrendsRepository repository = repositoryFactory.Create()) {
                repository.EnsureTables();
            }

            return(new TrendsRunTarget(
                       trendCategory,
                       new NotificationReporter(timeService)
            {
                LifeTime = TimeSpan.FromTicks(0)
            },
                       repositoryFactory,
                       project,
                       timeService,
                       new TrendTableSelector()));
        }
コード例 #7
0
ファイル: TrendsRunTarget.cs プロジェクト: guozanhua/phmi
 private void ProcessTrends(ITrendsRepository repository)
 {
     var time = _timeService.UtcTime;
     var infoToInsert = (from info in _trendsInfo.Values
                         where info.TriggerValue()
                         let value = info.Value()
                         where value.HasValue
                         select new Tuple<int, double>(info.Id, value.Value)).ToArray();
     if (infoToInsert.Any())
     {
         repository.Insert(time, _tableSelector.NextTable(), infoToInsert);
     }
 }
コード例 #8
0
ファイル: TrendsRunTarget.cs プロジェクト: guozanhua/phmi
 private void DeleteOldTrendSamples(ITrendsRepository repository)
 {
     if (!_timeToStore.HasValue)
         return;
     repository.DeleteOld(_timeService.UtcTime - _timeToStore.Value);
 }
コード例 #9
0
ファイル: TrendsService.cs プロジェクト: dmhai/dxpay
 public TrendsService(ITrendsRepository repository)
 {
     _repository = repository;
 }