aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/ViewModels
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/Azure/Tango.AzureUtils.UI/ViewModels')
-rw-r--r--Software/Visual_Studio/Azure/Tango.AzureUtils.UI/ViewModels/EnvironmentFirmwareUpgradeViewVM.cs14
-rw-r--r--Software/Visual_Studio/Azure/Tango.AzureUtils.UI/ViewModels/EnvironmentRemovalViewVM.cs9
-rw-r--r--Software/Visual_Studio/Azure/Tango.AzureUtils.UI/ViewModels/EnvironmentRollbackViewVM.cs86
-rw-r--r--Software/Visual_Studio/Azure/Tango.AzureUtils.UI/ViewModels/EnvironmentUpgradeViewVM.cs20
4 files changed, 116 insertions, 13 deletions
diff --git a/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/ViewModels/EnvironmentFirmwareUpgradeViewVM.cs b/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/ViewModels/EnvironmentFirmwareUpgradeViewVM.cs
index 54576cda7..964febbd8 100644
--- a/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/ViewModels/EnvironmentFirmwareUpgradeViewVM.cs
+++ b/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/ViewModels/EnvironmentFirmwareUpgradeViewVM.cs
@@ -94,10 +94,6 @@ namespace Tango.AzureUtils.UI.ViewModels
IsFree = false;
await _firmwareManager.InjectFirmwarePackage(SelectedDeploymentSlot, FilePath);
-
- var old = SelectedDeploymentSlot;
- SelectedDeploymentSlot = null;
- SelectedDeploymentSlot = old;
}
catch (Exception ex)
{
@@ -105,8 +101,18 @@ namespace Tango.AzureUtils.UI.ViewModels
}
finally
{
+ RequireRefresh();
IsFree = true;
}
}
+
+ protected override void OnRefreshRequired()
+ {
+ base.OnRefreshRequired();
+
+ var old = SelectedDeploymentSlot;
+ SelectedDeploymentSlot = null;
+ SelectedDeploymentSlot = old;
+ }
}
}
diff --git a/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/ViewModels/EnvironmentRemovalViewVM.cs b/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/ViewModels/EnvironmentRemovalViewVM.cs
index 0917b012d..e296ac16e 100644
--- a/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/ViewModels/EnvironmentRemovalViewVM.cs
+++ b/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/ViewModels/EnvironmentRemovalViewVM.cs
@@ -77,8 +77,6 @@ namespace Tango.AzureUtils.UI.ViewModels
Config.Password = Settings.Password;
await _environmentManager.RemoveEnvironment(SelectedDeploymentSlot, SlotName, Config);
-
- SelectedDeploymentSlot = null;
}
catch (Exception ex)
{
@@ -86,8 +84,15 @@ namespace Tango.AzureUtils.UI.ViewModels
}
finally
{
+ RequireRefresh();
IsFree = true;
}
}
+
+ protected override void OnRefreshRequired()
+ {
+ base.OnRefreshRequired();
+ SelectedDeploymentSlot = null;
+ }
}
}
diff --git a/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/ViewModels/EnvironmentRollbackViewVM.cs b/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/ViewModels/EnvironmentRollbackViewVM.cs
new file mode 100644
index 000000000..69e18b51d
--- /dev/null
+++ b/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/ViewModels/EnvironmentRollbackViewVM.cs
@@ -0,0 +1,86 @@
+using Microsoft.Azure.Management.AppService.Fluent;
+using Microsoft.Azure.Management.Fluent;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.AzureUtils.Environment;
+using Tango.Core.Commands;
+
+namespace Tango.AzureUtils.UI.ViewModels
+{
+ public class EnvironmentRollbackViewVM : AzureDashboardViewModel
+ {
+ private IWebAppBase _machineServiceApp;
+ private EnvironmentManager _environmentManager;
+
+ private List<IDeploymentSlot> _deploymentSlots;
+ public List<IDeploymentSlot> DeploymentSlots
+ {
+ get { return _deploymentSlots; }
+ set { _deploymentSlots = value; RaisePropertyChangedAuto(); }
+ }
+
+ private IDeploymentSlot _selectedDeploymentSlot;
+ public IDeploymentSlot SelectedDeploymentSlot
+ {
+ get { return _selectedDeploymentSlot; }
+ set { _selectedDeploymentSlot = value; RaisePropertyChangedAuto(); }
+ }
+
+ private RollbackEnvironmentConfiguration _config;
+ public RollbackEnvironmentConfiguration Config
+ {
+ get { return _config; }
+ set { _config = value; RaisePropertyChangedAuto(); }
+ }
+
+ public RelayCommand RollbackEnvironmentCommand { get; set; }
+
+ public EnvironmentRollbackViewVM()
+ {
+ RollbackEnvironmentCommand = new RelayCommand(RollbackEnvironment);
+ Config = new RollbackEnvironmentConfiguration();
+ }
+
+ public override void OnAuthenticated(IAzure azure, List<IWebAppBase> apps)
+ {
+ _machineServiceApp = apps.SingleOrDefault(x => x.Name == "MachineService");
+ DeploymentSlots = apps.OfType<IDeploymentSlot>().Where(x => x.Parent == _machineServiceApp).ToList();
+ SelectedDeploymentSlot = DeploymentSlots.FirstOrDefault();
+
+ _environmentManager = new EnvironmentManager(azure);
+ _environmentManager.ConfirmationRequired += ConfirmationHandler;
+ _environmentManager.Progress += ProgressHandler;
+ }
+
+ private async void RollbackEnvironment()
+ {
+ try
+ {
+ IsFree = false;
+
+ await _environmentManager.RollbackEnvironment(SelectedDeploymentSlot, Config);
+ }
+ catch (Exception ex)
+ {
+ StatusManager.UpdateStatus(ex);
+ }
+ finally
+ {
+ RequireRefresh();
+ IsFree = true;
+ }
+ }
+
+ protected override void OnRefreshRequired()
+ {
+ base.OnRefreshRequired();
+
+ var old = SelectedDeploymentSlot;
+ SelectedDeploymentSlot = null;
+ SelectedDeploymentSlot = old;
+ }
+ }
+}
diff --git a/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/ViewModels/EnvironmentUpgradeViewVM.cs b/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/ViewModels/EnvironmentUpgradeViewVM.cs
index 14e4bf196..3f353d54d 100644
--- a/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/ViewModels/EnvironmentUpgradeViewVM.cs
+++ b/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/ViewModels/EnvironmentUpgradeViewVM.cs
@@ -112,13 +112,6 @@ namespace Tango.AzureUtils.UI.ViewModels
{
IsFree = false;
await EnvironmentManager.UpgradeEnvironment(SelectedSourceApp, SelectedTargetApp, Config);
-
- var oldSource = SelectedSourceApp;
- var oldTarget = SelectedTargetApp;
- SelectedSourceApp = null;
- SelectedTargetApp = null;
- SelectedSourceApp = oldSource;
- SelectedTargetApp = oldTarget;
}
catch (Exception ex)
{
@@ -126,8 +119,21 @@ namespace Tango.AzureUtils.UI.ViewModels
}
finally
{
+ RequireRefresh();
IsFree = true;
}
}
+
+ protected override void OnRefreshRequired()
+ {
+ base.OnRefreshRequired();
+
+ var oldSource = SelectedSourceApp;
+ var oldTarget = SelectedTargetApp;
+ SelectedSourceApp = null;
+ SelectedTargetApp = null;
+ SelectedSourceApp = oldSource;
+ SelectedTargetApp = oldTarget;
+ }
}
}