public string GetStrategyTypeAsJson(StrategyFile strategyFile) { Type type = typeof(Interface.StrategyParameters); var assembly = Assembly.LoadFile(strategyFile.File); var types = assembly.GetTypes().Where(t => t.IsSubclassOf(type)); if (!types.Any()) { throw new Exception($"No types implementing {type.Name} available in {assembly.GetName().Name}"); } var parameterDialogView = new ParameterDialogView(types); parameterDialogView.ShowDialog(); if (parameterDialogView.SelectedType != null) { var selectedType = parameterDialogView.SelectedType; var strategyParameters = Activator.CreateInstance(selectedType); return(JsonConvert.SerializeObject(strategyParameters, Formatting.Indented)); } return(string.Empty); }
public string GetStrategyTypeAsJson(StrategyFile strategyFile) { string file = string.Empty; var dialog = new OpenFileDialog { Title = "Select", Multiselect = false, CheckFileExists = true, CheckPathExists = true }; var result = dialog.ShowDialog(); if (result.HasValue && result.Value.Equals(true) && dialog.FileNames != null && dialog.FileNames.Length == 1) { file = dialog.FileNames[0]; } if (!string.IsNullOrWhiteSpace(file)) { Type type = typeof(StrategyParameters); var assembly = Assembly.LoadFile(file); var types = assembly.GetTypes().Where(t => t.IsSubclassOf(type)); if (!types.Any()) { throw new Exception($"No types implementing {type.Name} available in {assembly.GetName().Name}"); } var parameterDialogView = new ParameterDialogView(types); parameterDialogView.ShowDialog(); if (parameterDialogView.SelectedType != null) { var selectedType = parameterDialogView.SelectedType; var strategyParameters = Activator.CreateInstance(selectedType); return(JsonConvert.SerializeObject(strategyParameters, Formatting.Indented)); } } return(string.Empty); }