aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Channels/ChannelPostScanTask.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-09-28 16:49:43 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-09-28 16:49:43 -0400
commit1fcfff41c7d33266a059b9f4161f9aea34be8de4 (patch)
treedb41aa2494cc0a69299f50efc2a53ef781dc5741 /MediaBrowser.Server.Implementations/Channels/ChannelPostScanTask.cs
parentc05cb1dcb1bb51cadc6e413395f2adb63cbab6ad (diff)
update channels
Diffstat (limited to 'MediaBrowser.Server.Implementations/Channels/ChannelPostScanTask.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Channels/ChannelPostScanTask.cs25
1 files changed, 23 insertions, 2 deletions
diff --git a/MediaBrowser.Server.Implementations/Channels/ChannelPostScanTask.cs b/MediaBrowser.Server.Implementations/Channels/ChannelPostScanTask.cs
index 6df12e669..1dff669ae 100644
--- a/MediaBrowser.Server.Implementations/Channels/ChannelPostScanTask.cs
+++ b/MediaBrowser.Server.Implementations/Channels/ChannelPostScanTask.cs
@@ -136,22 +136,43 @@ namespace MediaBrowser.Server.Implementations.Channels
totalCount = result.TotalRecordCount;
}
+ progress.Report(50);
+
if (currentRefreshLevel < maxRefreshLevel)
{
+ var numComplete = 0;
+ var numItems = folderItems.Count;
+
foreach (var folder in folderItems)
{
try
{
- var innerProgress = new Progress<double>();
-
+ var innerProgress = new ActionableProgress<double>();
+
+ var startingNumberComplete = numComplete;
+ innerProgress.RegisterAction(p =>
+ {
+ double innerPercent = startingNumberComplete;
+ innerPercent += (p / 100);
+ innerPercent /= numItems;
+ progress.Report((innerPercent * 50) + 50);
+ });
+
await GetAllItems(user, channelId, folder, currentRefreshLevel + 1, maxRefreshLevel, innerProgress, cancellationToken).ConfigureAwait(false);
}
catch (Exception ex)
{
_logger.ErrorException("Error getting channel content", ex);
}
+
+ numComplete++;
+ double percent = numComplete;
+ percent /= numItems;
+ progress.Report(percent * 100);
}
}
+
+ progress.Report(100);
}
}
}