private void SaveHistoryChanges(ChangesEntity changes, IEntityCollection <ReleaseEntity> releaseCollection) { var allReleases = releaseCollection.Find(a => true); var collection = m_DataContext.GetCollection <HistoryChangeEntity> (); var historyChanges = collection.FirstOrDefault(); var releasesIds = changes.NewOnlineSeries.Select(a => a.Key); var seriesReleases = allReleases.Where(a => releasesIds.Contains(a.Id)); var releaseOnlineSeries = new Dictionary <long, int> (); foreach (var seriesRelease in seriesReleases) { releaseOnlineSeries.Add(seriesRelease.Id, seriesRelease.Playlist?.Count() ?? 0); } if (historyChanges == null) { historyChanges = new HistoryChangeEntity { NewOnlineSeries = changes.NewOnlineSeries ?? new Dictionary <long, int> (), NewReleases = changes.NewReleases ?? new List <long> (), NewTorrents = changes.NewTorrents ?? new Dictionary <long, int> (), NewTorrentSeries = changes.NewTorrentSeries ?? new Dictionary <long, IDictionary <long, string> > (), ReleaseOnlineSeries = releaseOnlineSeries }; collection.Add(historyChanges); } else { historyChanges.NewOnlineSeries = changes.NewOnlineSeries ?? new Dictionary <long, int> (); historyChanges.NewReleases = changes.NewReleases ?? new List <long> (); historyChanges.NewTorrents = changes.NewTorrents ?? new Dictionary <long, int> (); historyChanges.NewTorrentSeries = changes.NewTorrentSeries ?? new Dictionary <long, IDictionary <long, string> > (); historyChanges.ReleaseOnlineSeries = releaseOnlineSeries; collection.Update(historyChanges); } }
private async Task SaveReleaseWatchTimestamp(long releaseId) { var releases = m_ReleasesCollection.Find(a => true); var release = releases.FirstOrDefault(a => a.Id == releaseId); release.LastWatchTimestamp = (long)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds; m_ReleasesCollection.Update(release); var lastThreeWatchReleases = releases .Where(a => a.LastWatchTimestamp > 0) .OrderByDescending(a => a.LastWatchTimestamp) .Take(3) .ToList(); if (!lastThreeWatchReleases.Any()) { return; } var jumpService = new JumpListService(); var dictionary = new Dictionary <long, string> (); foreach (var watchRelease in lastThreeWatchReleases) { dictionary.Add(watchRelease.Id, watchRelease.Title); } await jumpService.ChangeWatchHistoryItems(dictionary); }