diff --git a/K8sFileBrowser/K8sFileBrowser.csproj b/K8sFileBrowser/K8sFileBrowser.csproj index 4a05037..13486a8 100644 --- a/K8sFileBrowser/K8sFileBrowser.csproj +++ b/K8sFileBrowser/K8sFileBrowser.csproj @@ -9,7 +9,7 @@ Debug;Release AnyCPU Assets/app.ico - 0.0.9 + 0.1.1 win-x64;linux-x64 diff --git a/K8sFileBrowser/ViewModels/MainWindowViewModel.cs b/K8sFileBrowser/ViewModels/MainWindowViewModel.cs index 89fd8c6..77ff841 100644 --- a/K8sFileBrowser/ViewModels/MainWindowViewModel.cs +++ b/K8sFileBrowser/ViewModels/MainWindowViewModel.cs @@ -17,12 +17,12 @@ namespace K8sFileBrowser.ViewModels; public class MainWindowViewModel : ViewModelBase { - + #region Properties - + [Reactive] public string? Version { get; set; } = null!; - + [Reactive] public IEnumerable ClusterContexts { get; set; } = null!; @@ -58,11 +58,11 @@ public class MainWindowViewModel : ViewModelBase [Reactive] public Message Message { get; set; } = null!; - + #endregion Properties #region Commands - + public ReactiveCommand DownloadCommand { get; private set; } = null!; public ReactiveCommand DownloadLogCommand { get; private set; } = null!; public ReactiveCommand ParentCommand { get; private set; } = null!; @@ -96,7 +96,7 @@ public class MainWindowViewModel : ViewModelBase } #region Property Subscriptions - + private void InitiallyLoadContexts(IKubernetesService kubernetesService) { // load the cluster contexts when the view model is created @@ -115,7 +115,7 @@ public class MainWindowViewModel : ViewModelBase .FirstOrDefault(c => c.Name == kubernetesService.GetCurrentContext()); }); } - + private void RegisterReadNamespaces(IKubernetesService kubernetesService) { // read the cluster contexts @@ -130,7 +130,7 @@ public class MainWindowViewModel : ViewModelBase Namespaces = ns; }); } - + private void RegisterReadPods() { // read the pods when the namespace changes @@ -146,7 +146,7 @@ public class MainWindowViewModel : ViewModelBase Pods = x; }); } - + private void RegisterReadContainers() { // read the file information when the path changes @@ -290,11 +290,11 @@ public class MainWindowViewModel : ViewModelBase OpenCommand.ThrownExceptions.ObserveOn(RxApp.MainThreadScheduler) .Subscribe(ShowErrorMessage); } - + #endregion Configure Commands #region Get Data - + private static async Task> PodsAsync(Namespace? ns, IKubernetesService kubernetesService) { if (ns == null) @@ -346,67 +346,74 @@ public class MainWindowViewModel : ViewModelBase Parent = parent }).ToList(); } - + #endregion Get Data - + #region Reset Data - + private void ResetPath() { FileInformation = new List(); SelectedPath = null; SelectedContainer = null; - } - + } + private void ResetContainers() { ResetPath(); Containers = new List(); SelectedPod = null; - } - + } + private void ResetPods() { ResetContainers(); SelectedNamespace = null; Pods = new List(); - } - + } + private void ResetNamespaces() { ResetPods(); Namespaces = new List(); SelectedClusterContext = null; - } - + } + #endregion Reset Data - + #region show messages - + private void ShowWorkingMessage(string message) { - Message = new Message + RxApp.MainThreadScheduler.Schedule(Action); + return; + + void Action() { - IsVisible = true, - Text = message, - IsError = false - }; + Message = new Message + { + IsVisible = true, + Text = message, + IsError = false + }; + } } private void ShowErrorMessage(string message) { + RxApp.MainThreadScheduler.Schedule(Action); + return; + async void Action() { Message = new Message { IsVisible = true, Text = message, IsError = true }; await Task.Delay(7000); HideWorkingMessage(); } - - RxApp.MainThreadScheduler.Schedule(Action); } - + private void ShowErrorMessage(Exception exception) { // ReSharper disable once TemplateIsNotCompileTimeConstantProblem @@ -423,6 +430,6 @@ public class MainWindowViewModel : ViewModelBase IsError = false }); } - + #endregion show messages } \ No newline at end of file