From 29981e0b3b4d1c7fb9fd377ffbd47f813a849ec7 Mon Sep 17 00:00:00 2001 From: laurencee Date: Sun, 3 Jul 2016 23:36:00 +1000 Subject: [PATCH] Fix possible channels duplicates when importing multiple times --- GlobalAssemblyInfo.cs | 4 ++-- .../Model/Monitoring/MonitorStreamsModel.cs | 11 +++++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/GlobalAssemblyInfo.cs b/GlobalAssemblyInfo.cs index 970926b..e30d306 100644 --- a/GlobalAssemblyInfo.cs +++ b/GlobalAssemblyInfo.cs @@ -22,5 +22,5 @@ // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.5.0.0")] -[assembly: AssemblyFileVersion("2.5.0.0")] \ No newline at end of file +[assembly: AssemblyVersion("2.5.1.0")] +[assembly: AssemblyFileVersion("2.5.1.0")] \ No newline at end of file diff --git a/Livestream.Monitor/Model/Monitoring/MonitorStreamsModel.cs b/Livestream.Monitor/Model/Monitoring/MonitorStreamsModel.cs index f13e94c..7450af4 100644 --- a/Livestream.Monitor/Model/Monitoring/MonitorStreamsModel.cs +++ b/Livestream.Monitor/Model/Monitoring/MonitorStreamsModel.cs @@ -129,10 +129,13 @@ public async Task ImportFollows(string username, IApiClient apiClient) var followedChannelsQueryResults = await apiClient.GetUserFollows(username); followedChannelsQueryResults.EnsureAllQuerySuccess(); - var newChannels = followedChannelsQueryResults.Select(x => x.ChannelIdentifier).ToList(); - Livestreams.AddRange(followedChannelsQueryResults.Select(x => x.LivestreamModel)); - newChannels.ForEach(x => x.ApiClient.AddChannelWithoutQuerying(x)); - AddChannels(newChannels.ToArray()); + // Ignore duplicate channels + var newChannels = followedChannelsQueryResults.Where(x => !channelIdentifiers.Contains(x.ChannelIdentifier)).ToList(); + if (newChannels.Count == 0) return; + + Livestreams.AddRange(newChannels.Select(x => x.LivestreamModel)); + newChannels.ForEach(x => x.ChannelIdentifier.ApiClient.AddChannelWithoutQuerying(x.ChannelIdentifier)); + AddChannels(newChannels.Select(x => x.ChannelIdentifier).ToArray()); await RefreshLivestreams(); }