public TotalIndexStatistics GetByUniqueKey(TotalIndexStatisticsUniqueKey key)
 {
     using (var context = CreateContextFunc())
     {
         return(context.TotalIndexStatistics.Where(x => x.DatabaseID == key.DatabaseID && x.Date == key.Date && x.RelationID == key.RelationID &&
                                                   x.IndexID == key.IndexID).SingleOrDefault());
     }
 }
Esempio n. 2
0
        private void PersistTotalIndexStatistics(TotalIndexStatistics newStatistics)
        {
            var repository = repositories.GetTotalIndexStatisticsRepository();
            var uniqueKey  = new TotalIndexStatisticsUniqueKey()
            {
                DatabaseID = newStatistics.DatabaseID,
                Date       = newStatistics.Date,
                IndexID    = newStatistics.IndexID,
                RelationID = newStatistics.RelationID
            };
            var oldStatistics = repository.GetByUniqueKey(uniqueKey);

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