using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.Integration.Operation;
using Tango.Integration.Upgrade;
using Tango.MachineStudio.Common.FirmwareUpgrade;
using Tango.MachineStudio.Common.Notifications;
using Tango.MachineStudio.Common.StudioApplication;
using Tango.MachineStudio.UI.ViewModels;
using Tango.MachineStudio.UI.Views;
namespace Tango.MachineStudio.UI.FirmwareUpgrade
{
///
/// Default firmware upgrade manager.
///
///
public class DefaultFirmwareUpgrader : IFirmwareUpgrader
{
private IStudioApplicationManager _applicationManager;
private INotificationProvider _notification;
///
/// Initializes a new instance of the class.
///
public DefaultFirmwareUpgrader(IStudioApplicationManager applicationManager, INotificationProvider notificationProvider)
{
_applicationManager = applicationManager;
_notification = notificationProvider;
}
///
/// Performs a firmware upgrade.
///
/// The TFP stream.
public Task PerformUpgrade(Stream tfpStream)
{
return _applicationManager.ConnectedMachine.UpgradeFirmware(tfpStream);
}
///
/// Invokes the upgrade dialog.
///
public void InvokeUpgradeUI()
{
FirmwareUpgradeViewVM vm = new FirmwareUpgradeViewVM(_applicationManager.ConnectedMachine, _notification);
_notification.ShowModalDialog(vm, (x) =>
{
}, () => { });
}
}
}