public TotalViewStatistics GetByUniqueKey(TotalViewStatisticsUniqueKey key) { using (var context = CreateContextFunc()) { return(context.TotalViewStatistics.Where(x => x.DatabaseID == key.DatabaseID && x.Date == key.Date && x.ViewID == key.ViewID).SingleOrDefault()); } }
private void PersistTotalViewStatistics(TotalViewStatistics newStatistics) { var repository = repositories.GetTotalViewStatisticsRepository(); var uniqueKey = new TotalViewStatisticsUniqueKey() { DatabaseID = newStatistics.DatabaseID, Date = newStatistics.Date, ViewID = newStatistics.ViewID }; var oldStatistics = repository.GetByUniqueKey(uniqueKey); if (oldStatistics == null) { repository.Create(newStatistics); } else { TotalViewStatisticsMergeUtility.ApplySample(oldStatistics, newStatistics); repository.Update(oldStatistics); } }