private static async Task ProccesPodcasts() { var hub = NotificationHubClient.CreateClientFromConnectionString( "Endpoint=sb://podcastr-ns.servicebus.windows.net/;SharedAccessKeyName=DefaultFullSharedAccessSignature;SharedAccessKey=9uwYunpSW4DaBAO5/Q6RJmBjE24rmh8oiMdr2rIUVwY=", "podcastr"); var context = ApplicationDbContext.Create(); Console.WriteLine("Succesfully created db context @: {0}", DateTime.Now); var users = await context.Users.Include("Podcasts").ToListAsync(); Console.WriteLine("Succesfully got {0} users @: {1}", users.Count, DateTime.Now); var comparer = new EpisodeComparer(); var newEpisodes = new List <Episode>(); foreach (var user in users) { var podcasts = user.Podcasts; Console.WriteLine("Succesfully got {0} podcasts for user '{1}' @: {2}", podcasts.Count, user.Email, DateTime.Now); var episodesForUser = await CheckForNewEpisodesAsync(podcasts); if (episodesForUser.Any()) { Console.WriteLine("Succesfully got {0} new episodes for @: {1}", episodesForUser.Count, DateTime.Now); var toastNotification = new Dictionary <string, string>() { { "EpisodesCount", episodesForUser.Count.ToString() }, }; await hub.SendTemplateNotificationAsync(toastNotification, user.Email); Console.WriteLine("Succesfully sent notification to user {0}!", user.Email); var intersect = newEpisodes.Intersect(episodesForUser, comparer); foreach (var episode in intersect) { newEpisodes.Remove(episode); } newEpisodes.AddRange(episodesForUser); Console.WriteLine("Successfuly updated {0} episodes for user {1}!", episodesForUser.Count, user.Email); } else { Console.WriteLine("No new episodes for user {0}", user.Email); } } if (newEpisodes.Any()) { context.Episodes.AddRange(newEpisodes); var x = await context.SaveChangesAsync(); if (x != 0) { Console.WriteLine("Succesfully added {0} new episodes for all users", x); } } else { Console.WriteLine("No new episodes found!"); } Console.WriteLine("Succesfully processed!"); }
private static async Task ProccesPodcasts() { var hub = NotificationHubClient.CreateClientFromConnectionString( "Endpoint=sb://podcastr-ns.servicebus.windows.net/;SharedAccessKeyName=DefaultFullSharedAccessSignature;SharedAccessKey=9uwYunpSW4DaBAO5/Q6RJmBjE24rmh8oiMdr2rIUVwY=", "podcastr"); var context = ApplicationDbContext.Create(); Console.WriteLine("Succesfully created db context @: {0}", DateTime.Now); var users = await context.Users.Include("Podcasts").ToListAsync(); Console.WriteLine("Succesfully got {0} users @: {1}", users.Count, DateTime.Now); var comparer = new EpisodeComparer(); var newEpisodes = new List<Episode>(); foreach (var user in users) { var podcasts = user.Podcasts; Console.WriteLine("Succesfully got {0} podcasts for user '{1}' @: {2}", podcasts.Count, user.Email, DateTime.Now); var episodesForUser = await CheckForNewEpisodesAsync(podcasts); if (episodesForUser.Any()) { Console.WriteLine("Succesfully got {0} new episodes for @: {1}", episodesForUser.Count, DateTime.Now); var toastNotification = new Dictionary<string, string>() { { "EpisodesCount" , episodesForUser.Count.ToString() }, }; await hub.SendTemplateNotificationAsync(toastNotification, user.Email); Console.WriteLine("Succesfully sent notification to user {0}!", user.Email); var intersect = newEpisodes.Intersect(episodesForUser, comparer); foreach (var episode in intersect) { newEpisodes.Remove(episode); } newEpisodes.AddRange(episodesForUser); Console.WriteLine("Successfuly updated {0} episodes for user {1}!", episodesForUser.Count, user.Email); } else { Console.WriteLine("No new episodes for user {0}", user.Email); } } if (newEpisodes.Any()) { context.Episodes.AddRange(newEpisodes); var x = await context.SaveChangesAsync(); if (x != 0) { Console.WriteLine("Succesfully added {0} new episodes for all users", x); } } else { Console.WriteLine("No new episodes found!"); } Console.WriteLine("Succesfully processed!"); }