public void DismissError()
 {
     LoadSnapshotTask = new SnapshotTask()
     {
         Task = LastSucceededTask
     };
     TriggerUpdate(LoadSnapshotTaskChangedEventArgs);
 }
 private async Task StartLoadTask(Task <Snapshot> task)
 {
     try
     {
         await task;
         LastSucceededTask = task;
     }
     catch (Exception) { }
     finally
     {
         LoadSnapshotTask = new SnapshotTask()
         {
             Task = task
         };
         TriggerUpdate(LoadSnapshotTaskChangedEventArgs);
     }
 }
        public Task <Snapshot> UpdateAsync()
        {
            if (!LoadSnapshotTask.Task.IsCompleted)
            {
                return(LoadSnapshotTask.Task);
            }
            Snapshot oldSnapshot = null;

            if (LoadSnapshotTask.Task.Status == TaskStatus.RanToCompletion)
            {
                oldSnapshot = LoadSnapshotTask.Task.Result;
            }
            var task = HostedUtils.UpdateSnapshotAsync(HostedConfig, oldSnapshot);

            LoadSnapshotTask = new SnapshotTask()
            {
                Task = task
            };
            TriggerUpdate(LoadSnapshotTaskChangedEventArgs);
            _ = StartLoadTask(task);
            return(task);
        }