public MergedStatisticReleaseDetails AddStatisticsReleases(IEnumerable<ReleasePersistencyStatisticsItem> data) { //var recordsAffected = 0; var summary = new MergedStatisticReleaseDetails(); using (var connection = _sqlFactory.CreateDbConnection()) { connection.Open(); var previousReleases = SelectLastestStatisticsReleases(connection); summary.ExistingRecordsFound = previousReleases.Count; foreach (var releaseData in data) { var previousRelease = previousReleases.GetValueOrDefault(releaseData.GetKey()); // Only insert if we don't have the data already or if the data has changed if (previousRelease == null || previousRelease.VersionDownloadCount != releaseData.VersionDownloadCount) { connection.Insert(releaseData); summary.RecordsAdded++; } } } return summary; }
public MergedStatisticReleaseDetails AddStatisticsReleases(IEnumerable <ReleasePersistencyStatisticsItem> data) { //var recordsAffected = 0; var summary = new MergedStatisticReleaseDetails(); using (var connection = _sqlFactory.CreateDbConnection()) { connection.Open(); var previousReleases = SelectLastestStatisticsReleases(connection); summary.ExistingRecordsFound = previousReleases.Count; foreach (var releaseData in data) { var previousRelease = previousReleases.GetValueOrDefault(releaseData.GetKey()); // Only insert if we don't have the data already or if the data has changed if (previousRelease == null || previousRelease.VersionDownloadCount != releaseData.VersionDownloadCount) { connection.Insert(releaseData); summary.RecordsAdded++; } } } return(summary); }