using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Input; using Tango.Core; namespace Tango.AzureUtils.UI.Managers { public class DefaultStatusManager : ExtendedObject, IStatusManager { public event EventHandler StatusUpdated; public void UpdateStatus(AzureUtilsStage stage, string message, bool isIndeterminate = false) { UpdateStatus(new AzureUtilsProgressEventArgs() { IsIndeterminate = isIndeterminate, Message = message, Stage = stage, Maximum = 100, Progress = 0 }); } public void UpdateStatus(AzureUtilsProgressEventArgs progress) { InvokeUI(() => { if (progress.IsIndeterminate || (progress.Progress > 0 && progress.Progress != progress.Maximum)) { Mouse.OverrideCursor = Cursors.Wait; } else { Mouse.OverrideCursor = null; } StatusUpdated?.Invoke(this, progress); }); } public void UpdateStatus(Exception ex) { UpdateStatus(AzureUtilsStage.Error, ex.Message, false); } } }