public NormalizedStatementRelationStatistics GetByUniqueKey(NormalizedStatementRelationStatisticsUniqueKey key)
 {
     using (var context = CreateContextFunc())
     {
         return(context.NormalizedStatementRelationStatistics.Where(x => x.DatabaseID == key.DatabaseID &&
                                                                    x.Date == key.Date && x.RelationID == key.RelationID &&
                                                                    x.NormalizedStatementID == key.NormalizedStatementID).SingleOrDefault());
     }
 }
Exemple #2
0
        private void PersistStatementRelationStatistics(NormalizedStatementRelationStatistics newStatistics)
        {
            var repository = repositories.GetNormalizedStatementRelationStatisticsRepository();
            var uniqueKey  = new NormalizedStatementRelationStatisticsUniqueKey()
            {
                DatabaseID            = newStatistics.DatabaseID,
                Date                  = newStatistics.Date,
                RelationID            = newStatistics.RelationID,
                NormalizedStatementID = newStatistics.NormalizedStatementID
            };
            var oldStatistics = repository.GetByUniqueKey(uniqueKey);

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