Fix the LoadSessionFile method so that the BusyIndicator is displayed with the correct content.

This commit is contained in:
2025-02-18 19:09:20 -05:00
parent f0b765c5c8
commit 6fcb5f63ba
3 changed files with 149 additions and 93 deletions

View File

@@ -28,6 +28,7 @@ using Position = MarketData.Generator.CMMomentum.Position;
using TradeBlotter.UIUtils;
using MarketData.Generator.Model;
using MarketData.CNNProcessing;
using System.Runtime.InteropServices.WindowsRuntime;
namespace TradeBlotter.ViewModels
{
@@ -1120,7 +1121,15 @@ namespace TradeBlotter.ViewModels
return;
}
}
public bool LoadSessionFile()
{
BusyIndicator = true;
BusyContent = $"Loading {Utility.GetFileNameNoExtension(pathFileName)}...";
Task workerTask = Task.Factory.StartNew(() =>
{
try
{
if (!CMSessionManager.IsValidSessionFile(pathFileName)) return false;
initialPath = Path.GetDirectoryName(pathFileName);
@@ -1139,6 +1148,17 @@ namespace TradeBlotter.ViewModels
UpdatePositionPrices(false);
UpdatePositionRSI3(true);
RunPerformance();
return true;
}
catch(Exception exception)
{
System.Windows.MessageBox.Show(String.Format("Exception {0}",exception.ToString()),"Error",MessageBoxButton.OK,MessageBoxImage.Exclamation);
return false;
}
});
workerTask.ContinueWith(continuation =>
{
BusyIndicator=false;
base.OnPropertyChanged("Parameters");
base.OnPropertyChanged("SelectedParameter");
base.OnPropertyChanged("ParameterValue");
@@ -1151,8 +1171,10 @@ namespace TradeBlotter.ViewModels
base.OnPropertyChanged("ModelExpectation");
base.OnPropertyChanged("ExpectationColor");
base.OnPropertyChanged("ExpectationDescription");
});
return true;
}
private void RunPerformance()
{
if(null==sessionParams)return;

View File

@@ -1236,7 +1236,15 @@ namespace TradeBlotter.ViewModels
return;
}
}
public bool LoadSessionFile()
{
BusyIndicator = true;
BusyContent = $"Loading {Utility.GetFileNameNoExtension(pathFileName)}...";
Task workerTask = Task.Factory.StartNew( () =>
{
try
{
if(!CMTSessionManager.IsValidSessionFile(pathFileName)) return false;
initialPath=Path.GetDirectoryName(pathFileName);
@@ -1255,6 +1263,17 @@ namespace TradeBlotter.ViewModels
foreach(CMTCandidate candidate in sessionParams.Candidates)trendCandidates.Add(candidate);
UpdatePositionPrices(true);
RunPerformance();
return true;
}
catch(Exception exception)
{
System.Windows.MessageBox.Show(String.Format("Exception {0}",exception.ToString()),"Error",MessageBoxButton.OK,MessageBoxImage.Exclamation);
return false;
}
});
workerTask.ContinueWith(continuation =>
{
BusyIndicator = false;
base.OnPropertyChanged("Parameters");
base.OnPropertyChanged("SelectedParameter");
base.OnPropertyChanged("ParameterValue");
@@ -1270,8 +1289,10 @@ namespace TradeBlotter.ViewModels
base.OnPropertyChanged("ExpectationDescription");
base.OnPropertyChanged("TradeableCashDescription");
base.OnPropertyChanged("NonTradeableCashDescription");
});
return true;
}
private void RunPerformance()
{
if(null==sessionParams)return;

View File

@@ -1103,7 +1103,13 @@ namespace TradeBlotter.ViewModels
}
else LoadSessionFile();
}
public bool LoadSessionFile()
{
BusyIndicator = true;
BusyContent = $"Loading {Utility.GetFileNameNoExtension(pathFileName)}...";
Task workerTask = Task.Factory.StartNew(() =>
{
try
{
@@ -1134,6 +1140,17 @@ namespace TradeBlotter.ViewModels
UpdatePositionPrices(false);
UpdatePositionRSI3(true);
RunPerformance();
return true;
}
catch(Exception exception)
{
System.Windows.MessageBox.Show(String.Format("Exception {0}",exception.ToString()),"Error",MessageBoxButton.OK,MessageBoxImage.Exclamation);
return false;
}
});
workerTask.ContinueWith(continuation =>
{
BusyIndicator=false;
base.OnPropertyChanged("Parameters");
base.OnPropertyChanged("SelectedParameter");
base.OnPropertyChanged("ParameterValue");
@@ -1146,14 +1163,10 @@ namespace TradeBlotter.ViewModels
base.OnPropertyChanged("ModelExpectation");
base.OnPropertyChanged("ExpectationColor");
base.OnPropertyChanged("ExpectationDescription");
});
return true;
}
catch(Exception exception)
{
System.Windows.MessageBox.Show(String.Format("Exception {0}",exception.ToString()),"Error",MessageBoxButton.OK,MessageBoxImage.Exclamation);
return false;
}
}
private void RunPerformance()
{
if(null==sessionParams)return;