public NormalizedStatementIndexStatistics GetByUniqueKey(NormalizedStatementIndexStatisticsUniqueKey key)
 {
     using (var context = CreateContextFunc())
     {
         return(context.NormalizedStatementIndexStatistics.Where(x => x.DatabaseID == key.DatabaseID &&
                                                                 x.Date == key.Date && x.IndexID == key.IndexID &&
                                                                 x.NormalizedStatementID == key.NormalizedStatementID).SingleOrDefault());
     }
 }
Пример #2
0
        private void PersistStatementIndexStatistics(NormalizedStatementIndexStatistics newStatistics)
        {
            var repository = repositories.GetNormalizedStatementIndexStatisticsRepository();
            var uniqueKey  = new NormalizedStatementIndexStatisticsUniqueKey()
            {
                DatabaseID            = newStatistics.DatabaseID,
                Date                  = newStatistics.Date,
                IndexID               = newStatistics.IndexID,
                NormalizedStatementID = newStatistics.NormalizedStatementID
            };
            var oldStatistics = repository.GetByUniqueKey(uniqueKey);

            if (oldStatistics == null)
            {
                repository.Create(newStatistics);
            }
            else
            {
                NormalizedStatementIndexStatisticsMergeUtility.ApplySample(oldStatistics, newStatistics);
                repository.Update(oldStatistics);
            }
        }