aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Common.Implementations
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-07-06 17:23:32 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-07-06 17:23:32 -0400
commit53450bd514eec97d58eb18b8a01feab36475826b (patch)
tree5cd1b4013852619b0e108a8f2442ab893a924441 /MediaBrowser.Common.Implementations
parentb3054a6a2216e36cc37279a1fc0f4c14e6668c8f (diff)
added a notifications service
Diffstat (limited to 'MediaBrowser.Common.Implementations')
-rw-r--r--MediaBrowser.Common.Implementations/BaseApplicationHost.cs18
-rw-r--r--MediaBrowser.Common.Implementations/ScheduledTasks/ScheduledTaskWorker.cs15
-rw-r--r--MediaBrowser.Common.Implementations/Updates/InstallationManager.cs27
3 files changed, 31 insertions, 29 deletions
diff --git a/MediaBrowser.Common.Implementations/BaseApplicationHost.cs b/MediaBrowser.Common.Implementations/BaseApplicationHost.cs
index 46c84ff7d..197142590 100644
--- a/MediaBrowser.Common.Implementations/BaseApplicationHost.cs
+++ b/MediaBrowser.Common.Implementations/BaseApplicationHost.cs
@@ -513,24 +513,6 @@ namespace MediaBrowser.Common.Implementations
}
/// <summary>
- /// Performs the pending restart.
- /// </summary>
- /// <returns>Task.</returns>
- public void PerformPendingRestart()
- {
- if (HasPendingRestart)
- {
- Logger.Info("Restarting the application");
-
- Restart();
- }
- else
- {
- Logger.Info("PerformPendingRestart - not needed");
- }
- }
-
- /// <summary>
/// Notifies that the kernel that a change has been made that requires a restart
/// </summary>
public void NotifyPendingRestart()
diff --git a/MediaBrowser.Common.Implementations/ScheduledTasks/ScheduledTaskWorker.cs b/MediaBrowser.Common.Implementations/ScheduledTasks/ScheduledTaskWorker.cs
index 336718249..8947bdcc0 100644
--- a/MediaBrowser.Common.Implementations/ScheduledTasks/ScheduledTaskWorker.cs
+++ b/MediaBrowser.Common.Implementations/ScheduledTasks/ScheduledTaskWorker.cs
@@ -343,6 +343,8 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks
TaskCompletionStatus status;
CurrentExecutionStartTime = DateTime.UtcNow;
+ Exception failureException = null;
+
try
{
await ExecuteTask(CurrentCancellationTokenSource.Token, progress).ConfigureAwait(false);
@@ -357,6 +359,8 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks
{
Logger.ErrorException("Error", ex);
+ failureException = ex;
+
status = TaskCompletionStatus.Failed;
}
@@ -368,7 +372,7 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks
CurrentCancellationTokenSource = null;
CurrentProgress = null;
- OnTaskCompleted(startTime, endTime, status);
+ OnTaskCompleted(startTime, endTime, status, failureException);
}
/// <summary>
@@ -517,7 +521,7 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks
/// <param name="startTime">The start time.</param>
/// <param name="endTime">The end time.</param>
/// <param name="status">The status.</param>
- private void OnTaskCompleted(DateTime startTime, DateTime endTime, TaskCompletionStatus status)
+ private void OnTaskCompleted(DateTime startTime, DateTime endTime, TaskCompletionStatus status, Exception ex)
{
var elapsedTime = endTime - startTime;
@@ -532,6 +536,11 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks
Id = Id
};
+ if (ex != null)
+ {
+ result.ErrorMessage = ex.Message;
+ }
+
JsonSerializer.SerializeToFile(result, GetHistoryFilePath(true));
LastExecutionResult = result;
@@ -560,7 +569,7 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks
if (State == TaskState.Running)
{
- OnTaskCompleted(CurrentExecutionStartTime, DateTime.UtcNow, TaskCompletionStatus.Aborted);
+ OnTaskCompleted(CurrentExecutionStartTime, DateTime.UtcNow, TaskCompletionStatus.Aborted, null);
}
if (CurrentCancellationTokenSource != null)
diff --git a/MediaBrowser.Common.Implementations/Updates/InstallationManager.cs b/MediaBrowser.Common.Implementations/Updates/InstallationManager.cs
index ba2cd7baa..e7af4004b 100644
--- a/MediaBrowser.Common.Implementations/Updates/InstallationManager.cs
+++ b/MediaBrowser.Common.Implementations/Updates/InstallationManager.cs
@@ -21,10 +21,10 @@ namespace MediaBrowser.Common.Implementations.Updates
/// </summary>
public class InstallationManager : IInstallationManager
{
- public event EventHandler<GenericEventArgs<InstallationInfo>> PackageInstalling;
- public event EventHandler<GenericEventArgs<InstallationInfo>> PackageInstallationCompleted;
- public event EventHandler<GenericEventArgs<InstallationInfo>> PackageInstallationFailed;
- public event EventHandler<GenericEventArgs<InstallationInfo>> PackageInstallationCancelled;
+ public event EventHandler<InstallationEventArgs> PackageInstalling;
+ public event EventHandler<InstallationEventArgs> PackageInstallationCompleted;
+ public event EventHandler<InstallationFailedEventArgs> PackageInstallationFailed;
+ public event EventHandler<InstallationEventArgs> PackageInstallationCancelled;
/// <summary>
/// The current installations
@@ -384,7 +384,13 @@ namespace MediaBrowser.Common.Implementations.Updates
var linkedToken = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, innerCancellationTokenSource.Token).Token;
- EventHelper.QueueEventIfNotNull(PackageInstalling, this, new GenericEventArgs<InstallationInfo> { Argument = installationInfo }, _logger);
+ var installationEventArgs = new InstallationEventArgs
+ {
+ InstallationInfo = installationInfo,
+ PackageVersionInfo = package
+ };
+
+ EventHelper.QueueEventIfNotNull(PackageInstalling, this, installationEventArgs, _logger);
try
{
@@ -397,7 +403,7 @@ namespace MediaBrowser.Common.Implementations.Updates
CompletedInstallations.Add(installationInfo);
- EventHelper.QueueEventIfNotNull(PackageInstallationCompleted, this, new GenericEventArgs<InstallationInfo> { Argument = installationInfo }, _logger);
+ EventHelper.QueueEventIfNotNull(PackageInstallationCompleted, this, installationEventArgs, _logger);
}
catch (OperationCanceledException)
{
@@ -408,7 +414,7 @@ namespace MediaBrowser.Common.Implementations.Updates
_logger.Info("Package installation cancelled: {0} {1}", package.name, package.versionStr);
- EventHelper.QueueEventIfNotNull(PackageInstallationCancelled, this, new GenericEventArgs<InstallationInfo> { Argument = installationInfo }, _logger);
+ EventHelper.QueueEventIfNotNull(PackageInstallationCancelled, this, installationEventArgs, _logger);
throw;
}
@@ -421,7 +427,12 @@ namespace MediaBrowser.Common.Implementations.Updates
CurrentInstallations.Remove(tuple);
}
- EventHelper.QueueEventIfNotNull(PackageInstallationFailed, this, new GenericEventArgs<InstallationInfo> { Argument = installationInfo }, _logger);
+ EventHelper.QueueEventIfNotNull(PackageInstallationFailed, this, new InstallationFailedEventArgs
+ {
+ InstallationInfo = installationInfo,
+ Exception = ex
+
+ }, _logger);
throw;
}