public void PublishViewStatistics(StatementViewStatisticsData statistics) { var newSample = new TotalViewStatistics() { CreatedDate = DateTime.Now, DatabaseID = statistics.DatabaseID, Date = statistics.ExecutionDate, RewrittenCount = 1, ViewID = statistics.ViewID }; viewStatistics.AddOrUpdate(statistics.ViewID, new TotalViewStatisticsSampler(dateTimeSelector, newSample), (k, v) => { v.AddSample(newSample); return(v); }); }
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); } }
public static void ApplySample(TotalViewStatistics cumulativeData, TotalViewStatistics newSample) { cumulativeData.RewrittenCount += newSample.RewrittenCount; }