19 using System.Collections.Generic;
31 #region Public properties 33 public double DownloadMegaBytesReceived
37 return Updater.DownloadBytesReceived / 1000000;
41 public double DownloadMegaBytesTotal
45 return Updater.DownloadBytesTotal / 1000000;
53 public string DownloadFolder {
get;
set; }
55 public string Summary {
get {
return Updater.ReleaseInfo.
Summary; } }
65 if (_downloadCommand == null)
68 param => StartProcess(),
69 param => CanStartProcess());
71 return _downloadCommand;
79 if (_chooseFolderCommand == null)
83 return _chooseFolderCommand;
91 if (_installCommand == null)
95 return _installCommand;
101 #region MVVM messages 107 if (_chooseFolderMessage == null)
111 return _chooseFolderMessage;
119 if (_downloadFinishedMessage == null)
123 return _downloadFinishedMessage;
131 if (_downloadFailedMessage == null)
135 return _downloadFailedMessage;
149 #region Implementation of ProcessViewModelBase 154 processMessageContent.PercentCompleted =
Updater.PercentDownloaded;
157 d.DownloadMegaBytesReceived = (double)
Updater.DownloadBytesReceived / 1000000;
158 d.DownloadMegaBytesTotal = (
double)
Updater.DownloadBytesTotal / 1000000;
162 Logger.Warn(
"UpdateProcessMessageContent: processMessageContent is not a DownloadProcessMessageContent!");
168 #region Protected methods 170 protected virtual void SendDownloadFinishedMessage()
172 Logger.Info(
"SendDownloadFinishedMessage");
176 protected virtual void SendDownloadFailedMessage()
178 Logger.Info(
"SendDownloadFailedMessage");
182 protected virtual bool CanStartProcess()
184 return !IsProcessing;
187 protected virtual void ChooseFolder(
object param)
194 if (fileNameMessageContent.Confirmed)
196 Logger.Info(
"ConfirmFolder: Confirmed, proceeding to start download");
197 Updater.DestinationFolder = fileNameMessageContent.Value;
202 Logger.Info(
"ConfirmFolder: Not confirmed!");
206 protected virtual void Install(
object param)
214 #region Protected properties 218 [DebuggerStepThrough]
231 base.SendProcessFinishedMessage();
234 case UpdaterStatus.Downloaded:
237 case UpdaterStatus.DownloadFailed:
249 if (_downloadProcessMessageContent == null)
253 return _downloadProcessMessageContent;
273 private static NLog.Logger Logger {
get {
return _logger.Value; } }
275 private static readonly Lazy<
NLog.Logger> _logger =
new Lazy<
NLog.Logger>(() =>
NLog.LogManager.GetCurrentClassLogger());
Holds information about percent completion of a process and defines events that occur when the proces...
override void UpdateProcessMessageContent(ProcessMessageContent processMessageContent)
Updates the given ProcessMessageContent with the current process.
Message content that holds a reference to a view model.
Command that implements ICommand and accepts delegates that contain the command implementation.
Abstract base class for view models that deal with processes.
string Summary
Gets or sets the release summary.
SemanticVersion ReleaseVersion
Gets or sets the version of the release.
Class that handles semantic versioning.
Fetches version information from the internet and raises an UpdateAvailable event if a new version is...
override void SendProcessFinishedMessage()
Sends the ProcessMessageContent.CompletedMessage to signal that the process has finished.