public Forexpolate_Test(StrategyConfig config) : base(config) { QuickBuyLongFlag = false; QuickBuyShortFlag = false; tdmObj = new TDM_Manager(ExchangeObject); }
public async Task DeleteStrategyAsync(StrategyConfig strategyConfig) { if (System.IO.File.Exists(userStrategiesFile)) { List <StrategyConfig> strategies = null; using (var reader = System.IO.File.OpenText(userStrategiesFile)) { var rjson = await reader.ReadToEndAsync(); strategies = JsonConvert.DeserializeObject <List <StrategyConfig> >(rjson); } var remove = strategies.FirstOrDefault(s => s.Name.Equals(strategyConfig.Name)); if (remove != null) { strategies.Remove(remove); var wjson = JsonConvert.SerializeObject(strategies); UnicodeEncoding encoding = new UnicodeEncoding(); char[] chars = encoding.GetChars(encoding.GetBytes(wjson)); using (StreamWriter writer = System.IO.File.CreateText(userStrategiesFile)) { await writer.WriteAsync(chars, 0, chars.Length); } } } }
// 策略添加到表中,返回添加后的行号 private StrategyConfig AddStra(Strategy stra, string pInterval, DateTime pBegin, DateTime?pEnd, string pName = "Invalid") { if (pName == "Invalid") { if (m_lstStrategies.Count == 0) { pName = "1"; } else { pName = (m_lstStrategies.Select(n => int.Parse(n.Name)).Max() + 1).ToString(); } } stra.Name = pName; StrategyConfig strategy = new StrategyConfig(); strategy.BeginDate = pBegin; strategy.EndDate = pEnd; strategy.Interval = pInterval; strategy.Name = pName; strategy.Params = stra.GetParams(); strategy.TypeFullName = stra.GetType().FullName; m_lstStrategies.Add(strategy); return(strategy); }
private void btn_Simulate_Click(object sender, RoutedEventArgs e) { if (this.cmbx_Stratagies.SelectedIndex < 0) { return; } if (this.cmbx_Interval.SelectedIndex < 0) { return; } Strategy stra = (Strategy)Activator.CreateInstance((Type)this.cmbx_Stratagies.SelectedItem); //TODO---参数配置--- //if (stra.GetParams().Trim('(', ')').Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Length >= 1) //{ // PropertyGrid fp = new PropertyGrid(); // //参数配置 // fp.DataContext = stra; // fp.WindowStartupLocation = WindowStartupLocation.CenterScreen; // if (fp.ShowDialog() != true) return; //} StrategyConfig strategy = AddStra(stra, this.cmbx_Interval.Text, this.dp_BeginTime.DisplayDate, this.dp_EndTime.DisplayDate); //数据加载 LoadDataBar(strategy); }
//加载测试指定行的策略的 private void LoadDataBar(StrategyConfig config) { //var inst = row.Cells["Instrument"].Value.ToString(); //var instOrder = row.Cells["InstrumentOrder"].Value.ToString(); //var interval = row.Cells["Interval"].Value.ToString(); //var stra = _dicStrategies[row.Cells["StraName"].Value.ToString()]; //var begin = ((DateTime)row.Cells["BeginDate"].Value).ToString("yyyyMMdd"); //var end = row.Cells["EndDate"].Value == null ? DateTime.Today.AddDays(7).ToString("yyyyMMdd") : ((DateTime)row.Cells["EndDate"].Value).AddDays(1).ToString("yyyyMMdd"); //this.DataGridViewStrategies.Rows[rid].Cells["Loaded"].Value = "加载中..."; }
public ActionResult UpdateConfiguration(StrategyConfig config) { try { _configManager.Write(config); return(Ok()); } catch (Exception exp) { _log.Error(exp, $"Error while writing strategy configuration."); } return(StatusCode(500)); }
internal WindowsFormsCodeGeneratorStrategy(StrategyConfig config) { Writer = config.Writer; CanonicalTableName = config.CanonicalTableName; Columns = config.Columns; DataAccessTech = config.DataAccessTech; ValidationsEnabled = config.ValidationsEnabled; ValidationColumns = config.ValidationColumns; DetailValidationColumns = config.DetailValidationColumns; ConnectionString = config.ConnectionString; ConnectionStringWithPassword = config.ConnectionStringWithPassword; TableName = config.TableName; DetailTableName = config.DetailTableName; CanonicalDetailTableName = GetCanonicalIdentifier(DetailTableName); ConstraintName = config.ConstraintName; }
public async Task <StrategyConfig> GetStrategyAsync(string strategyName) { StrategyConfig strategy = null; if (System.IO.File.Exists(userStrategiesFile)) { using var reader = System.IO.File.OpenText(userStrategiesFile); var json = await reader.ReadToEndAsync().ConfigureAwait(false); var strategies = JsonConvert.DeserializeObject <List <StrategyConfig> >(json); strategy = strategies.FirstOrDefault(s => s.Name.Equals(strategyName, StringComparison.Ordinal)); return(strategy); } return(GetDemoStrategyConfig()); }
protected Strategy(StrategyConfig config) { this.Name = config.Name; this.SubName = config.SubName; this.ShortCode = config.ShortCode; this.ActiveStatus = config.ActiveStatus; this.MinPositionLevelPercent = config.MinPositionLevelPercent; this.MaxPositionCount = config.MaxPositionCount; this.OrderType = config.OrderType; this.AccountConfigList = config.Accounts; this.UserConfigList = config.Users; this.MyStrategyJson = JsonConvert.SerializeObject(config); this.ExitLoop = 0; UniqueId = Guid.NewGuid().ToString(); dbManager = new DBManager(); }
internal VBWindowsFormsCodeGeneratorStrategy(StrategyConfig config) : base(config) { ActionMappings = new Dictionary <string, WriterDelegate>(); ActionMappings["'<WizardGeneratedCode>Namespace_UserCode</WizardGeneratedCode>"] = WriteUsingUserCode; ActionMappings["'<WizardGeneratedCode>Form_Load</WizardGeneratedCode>"] = WriteFormLoadCode; ActionMappings["'<WizardGeneratedCode>Validation Events</WizardGeneratedCode>"] = WriteValidationCode; ActionMappings["'<WizardGeneratedCode>Private Variables Frontend</WizardGeneratedCode>"] = WriteVariablesUserCode; ActionMappings["'<WizardGeneratedCode>Save Event</WizardGeneratedCode>"] = WriteSaveEventCode; ActionMappings["'<WizardGeneratedCode>Add Event</WizardGeneratedCode>"] = WriteAddEventCode; ActionMappings["'<WizardGeneratedCode>Designer Control Declaration</WizardGeneratedCode>"] = WriteDesignerControlDeclCode; ActionMappings["'<WizardGeneratedCode>Designer Control Initialization</WizardGeneratedCode>"] = WriteDesignerControlInitCode; ActionMappings["'<WizardGeneratedCode>Designer BeforeSuspendLayout</WizardGeneratedCode>"] = WriteDesignerBeforeSuspendCode; ActionMappings["'<WizardGeneratedCode>Designer AfterSuspendLayout</WizardGeneratedCode>"] = WriteDesignerAfterSuspendCode; ActionMappings["'<WizardGeneratedCode>Designer BeforeResumeSuspendLayout</WizardGeneratedCode>"] = WriteBeforeResumeSuspendCode; }
private static StrategyConfig GetDemoStrategyConfig() { var strategyConfig = new StrategyConfig { Name = "Binance Moving Average - ETHBTC", TargetType = "DevelopmentInProgress.Strategy.MovingAverage.MovingAverageStrategy", TargetAssembly = Path.Combine(Environment.CurrentDirectory, "DevelopmentInProgress.Strategy.MovingAverage.dll"), DisplayViewType = "DevelopmentInProgress.Strategy.MovingAverage.Wpf.View.MovingAverageView", DisplayViewModelType = "DevelopmentInProgress.Strategy.MovingAverage.Wpf.ViewModel.MovingAverageViewModel", DisplayAssembly = Path.Combine(Environment.CurrentDirectory, "DevelopmentInProgress.Strategy.MovingAverage.Wpf.dll"), Parameters = "{\r\n \"TradeRange\": 10000,\r\n \"BuyIndicator\": 0.00015,\r\n \"SellIndicator\": 0.00015,\r\n \"MovingAvarageRange\": 10000,\r\n \"Suspend\": true,\r\n \"StrategyName\": \"Binance Moving Average - ETHBTC\",\r\n \"Value\": null\r\n}", TradesChartDisplayCount = 1000, TradesDisplayCount = 13, OrderBookChartDisplayCount = 20, OrderBookDisplayCount = 9 }; strategyConfig.StrategySubscriptions.AddRange(new List <StrategySubscription> { new StrategySubscription { AccountName = "Binance - Investment", Symbol = "ETHBTC", Limit = 0, Exchange = Exchange.Binance, Subscribes = Subscribes.Trades | Subscribes.OrderBook | Subscribes.Candlesticks, CandlestickInterval = CandlestickInterval.Minute } }); strategyConfig.Dependencies.AddRange(new List <string> { Path.Combine(Environment.CurrentDirectory, "DevelopmentInProgress.Strategy.Common.dll"), Path.Combine(Environment.CurrentDirectory, "DevelopmentInProgress.TradeView.Core.dll"), Path.Combine(Environment.CurrentDirectory, "DevelopmentInProgress.Strategy.MovingAverage.dll"), }); strategyConfig.DisplayDependencies.AddRange(new List <string> { Path.Combine(Environment.CurrentDirectory, "DevelopmentInProgress.TradeView.Core.dll"), Path.Combine(Environment.CurrentDirectory, "DevelopmentInProgress.Strategy.MovingAverage.dll"), Path.Combine(Environment.CurrentDirectory, "DevelopmentInProgress.Strategy.MovingAverage.Wpf.dll") }); return(strategyConfig); }
public async Task SaveStrategyAsync(StrategyConfig strategyConfig) { if (strategyConfig == null) { return; } List <StrategyConfig> strategies; if (System.IO.File.Exists(userStrategiesFile)) { using (var reader = System.IO.File.OpenText(userStrategiesFile)) { var rjson = await reader.ReadToEndAsync(); strategies = JsonConvert.DeserializeObject <List <StrategyConfig> >(rjson); } } else { strategies = new List <StrategyConfig>(); } var dupe = strategies.FirstOrDefault(s => s.Name.Equals(strategyConfig.Name)); if (dupe != null) { strategies.Remove(dupe); } strategies.Add(strategyConfig); var wjson = JsonConvert.SerializeObject(strategies, Formatting.Indented); UnicodeEncoding encoding = new UnicodeEncoding(); char[] chars = encoding.GetChars(encoding.GetBytes(wjson)); using (StreamWriter writer = System.IO.File.CreateText(userStrategiesFile)) { await writer.WriteAsync(chars, 0, chars.Length); } }
internal CSharpDataGridStrategy(StrategyConfig config) : base(config) { }
public Forexpolate(StrategyConfig config) : base(config) { QuickBuyLongFlag = false; QuickBuyShortFlag = false; }
internal CSharpTypedDatasetIndividualControlsStrategy(StrategyConfig config) : base(config) { }
internal CSharpEntityFrameworkIndividualControlsStrategy(StrategyConfig config) : base(config) { }
internal VBMasterDetailStrategy(StrategyConfig config) : base(config) { }
/// <summary> /// Runs custom wizard logic when the wizard has completed all tasks. /// </summary> public void RunFinished() { Array activeProjects = (Array)dte.ActiveSolutionProjects; Project project = (Project)activeProjects.GetValue(0); VSProject vsProj = null; if (wizardFinished) { #if NET_40_OR_GREATER string frmName = string.Empty; SortedSet <string> tables = new SortedSet <string>(); Dictionary <string, WindowsFormsCodeGeneratorStrategy> strategies = new Dictionary <string, WindowsFormsCodeGeneratorStrategy>(); vsProj = project.Object as VSProject; ItemTemplateUtilities.CopyResourcesToProject(project, _itemTemplateTempPath); try { // Ensure all model exists, even if user didn't went through validation pages, so metadata for table used in FKs is already loaded. GenerateModelsForItemTemplates(); string detailTableName = _detailEntity; string _canonicalTableName = ItemTemplateUtilities.GetCanonicalIdentifier(_selectedEntity); string canonicalDetailTableName = ItemTemplateUtilities.GetCanonicalIdentifier(detailTableName); // Gather all the tables tables.Add(_selectedEntity); if (!string.IsNullOrEmpty(detailTableName)) { tables.Add(detailTableName); } foreach (KeyValuePair <string, MySql.Data.VisualStudio.Wizards.ForeignKeyColumnInfo> kvp2 in ForeignKeys) { tables.Add(kvp2.Value.ReferencedTableName); } foreach (KeyValuePair <string, MySql.Data.VisualStudio.Wizards.ForeignKeyColumnInfo> kvp2 in DetailForeignKeys) { tables.Add(kvp2.Value.ReferencedTableName); } AddColumnMappings(_canonicalTableName, _colValidations); if (!string.IsNullOrEmpty(detailTableName)) { AddColumnMappings(canonicalDetailTableName, _colValidationsDetail); } InitializeColumnMappings(ForeignKeys); InitializeColumnMappings(DetailForeignKeys); // Generate the model using the proper technology ItemTemplateUtilities.GenerateEntityFrameworkModel(project, vsProj, _connection, _selectedModel, tables.ToList(), _projectPath, _currentEntityFrameworkVersion, _language, ColumnMappings, ref TablesIncludedInModel); // Generate screens for the selected table. _hasDataGridDateColumn = false; Dictionary <string, Column> Columns = _columns; Dictionary <string, Column> DetailColumns = _detailColumns; _canonicalTableName = ItemTemplateUtilities.GetCanonicalIdentifier(_selectedEntity); detailTableName = _detailEntity; canonicalDetailTableName = ItemTemplateUtilities.GetCanonicalIdentifier(detailTableName); if (!TablesIncludedInModel.ContainsKey(_selectedEntity)) { SendToGeneralOutputWindow(string.Format("Skipping generation of screen for table '{0}' because it does not have primary key.", _selectedEntity)); return; } if ((_GuiType == GuiType.MasterDetail) && !TablesIncludedInModel.ContainsKey(_detailEntity)) { // If Detail table does not have PK, then you cannot edit details, "degrade" layout from Master Detail to Individual Controls. _GuiType = GuiType.IndividualControls; SendToGeneralOutputWindow(string.Format("Degrading layout for table '{0}' from master detail to single controls (because detail table '{1}' does not have primary key).", _selectedEntity, _detailEntity)); } // Create the strategy StrategyConfig config = new StrategyConfig(sw, _canonicalTableName, Columns, DetailColumns, _dataAccessTechnology, _GuiType, _language, _colValidations != null, _colValidations, DetailValidationColumns, ItemTemplateUtilities.ConnectionStringWithIncludedPassword(_connection), _connectionString, _selectedEntity, _detailEntity, _constraintName, ForeignKeys, DetailForeignKeys); WindowsFormsCodeGeneratorStrategy Strategy = WindowsFormsCodeGeneratorStrategy.GetInstance(config); strategies.Add(_selectedEntity, Strategy); if (!_hasDataGridDateColumn) { ItemTemplateUtilities.EnsureCodeForDateTimeGridColumn(vsProj, Columns, DetailColumns, _language, _projectPath, _projectNamespace); } // Add new form to project. frmName = string.Format("frm{0}", _canonicalTableName); string frmDesignerName = string.Format("frm{0}.designer", _canonicalTableName); ItemTemplateUtilities.AddNewForm(project, frmName, _projectPath, _projectNamespace, _language); // Now generated the bindings & custom code List <string> formNames = new List <string>(); List <string> tableNames = new List <string>(); if (!TablesIncludedInModel.ContainsKey(_selectedEntity)) { return; } _canonicalTableName = ItemTemplateUtilities.GetCanonicalIdentifier(_selectedEntity); if (TablesIncludedInModel.ContainsKey(_selectedEntity)) { frmName = string.Format("frm{0}", _canonicalTableName); formNames.Add(frmName); tableNames.Add(_selectedEntity); frmDesignerName = string.Format("frm{0}.designer", _canonicalTableName); WindowsFormsCodeGeneratorStrategy strategy = strategies[_selectedEntity]; AddBindings(vsProj, strategy, frmName, frmDesignerName); } // This line is a hack to avoid "Project Unavailable" exceptions. project = (Project)((Array)(dte.ActiveSolutionProjects)).GetValue(0); vsProj = project.Object as VSProject; ItemTemplateUtilities.RemoveTemplateForm(vsProj, _projectPath, _language); ItemTemplateUtilities.FixNamespaces(_language, _projectPath, _projectNamespace, _dataAccessTechnology); // Update the model name with the Conn string name ItemTemplateUtilities.UpdateModelName(project, frmName, _projectPath, _projectNamespace, _connectionName, _language); if (_dataAccessTechnology == DataAccessTechnology.EntityFramework5) { string formFile = Path.Combine(_projectPath, _language == LanguageGenerator.CSharp ? string.Format("{0}.cs", frmName) : string.Format("{0}.vb", frmName)); if (File.Exists(formFile)) { string contents = ""; contents = File.ReadAllText(formFile); string strToReplace = string.Format("ObjectResult<{0}> _entities = ctx.{0}.Execute(MergeOption.AppendOnly);", _selectedEntity); string strReplaceWith = string.Format("var _entities = ctx.{0}.ToList<{0}>();", _selectedEntity); contents = contents.Replace(strToReplace, strReplaceWith); File.WriteAllText(formFile, contents); } } SendToGeneralOutputWindow("Building Solution..."); project.DTE.Solution.SolutionBuild.Build(true); Settings.Default.WinFormsWizardConnection = _connectionName; Settings.Default.Save(); SendToGeneralOutputWindow("Finished item generation."); } catch (WizardException e) { SendToGeneralOutputWindow(string.Format("An error ocurred: {0}\n\n{1}", e.Message, e.StackTrace)); } #else throw new NotImplementedException(); #endif } else { vsProj = project.Object as VSProject; ItemTemplateUtilities.RemoveTemplateForm(vsProj, _projectPath, _language); } }
internal VBTypedDatasetDataGridStrategy(StrategyConfig config) : base(config) { }
public Stockpolate(StrategyConfig config) : base(config) { }
public override void ProjectFinishedGenerating(Project project) { #if NET_40_OR_GREATER var vsProj = project.Object as VSProject; var tables = new SortedSet <string>(); var strategies = new Dictionary <string, WindowsFormsCodeGeneratorStrategy>(); if (vsProj == null) { return; } vsProj.References.Add("MySql.Data"); project.DTE.SuppressUI = true; vsProj.Project.Save(); bool found = false; foreach (Reference reference in vsProj.References) { if (reference.Name.IndexOf("MySql.Data", StringComparison.CurrentCultureIgnoreCase) >= 0 && !String.IsNullOrEmpty(reference.Path)) { found = true; break; } } if (!found) { var infoResult = InfoDialog.ShowDialog( InfoDialogProperties.GetOkCancelDialogProperties( InfoDialog.InfoType.Warning, Resources.MySqlDataProviderPackage_ConnectorNetNotFoundError, @"To use it you must download and install the MySQL Connector/Net package from http://dev.mysql.com/downloads/connector/net/", Resources.MySqlDataProviderPackage_ClickOkOrCancel)); if (infoResult.DialogResult == DialogResult.OK) { ProcessStartInfo browserInfo = new ProcessStartInfo("http://dev.mysql.com/downloads/connector/net/"); Process.Start(browserInfo); } } try { foreach (DbTables t in WizardForm.SelectedTables) { AdvancedWizardForm crud = WizardForm.CrudConfiguration[t.Name]; // Ensure all model exists, even if user didn't went through validation pages. // So metadata for table used in FKs is already loaded. crud.GenerateModels(); string detailTableName = crud.DetailTableName; string canonicalTableName = GetCanonicalIdentifier(crud.TableName); string canonicalDetailTableName = GetCanonicalIdentifier(detailTableName); // Gather all the tables tables.Add(crud.TableName); if (!string.IsNullOrEmpty(detailTableName)) { tables.Add(detailTableName); } foreach (KeyValuePair <string, ForeignKeyColumnInfo> kvp2 in crud.ForeignKeys) { tables.Add(kvp2.Value.ReferencedTableName); } foreach (KeyValuePair <string, ForeignKeyColumnInfo> kvp2 in crud.DetailForeignKeys) { tables.Add(kvp2.Value.ReferencedTableName); } AddColumnMappings(canonicalTableName, crud.ValidationColumns); if (!string.IsNullOrEmpty(detailTableName)) { AddColumnMappings(canonicalDetailTableName, crud.ValidationColumnsDetail); } InitializeColumnMappings(crud.ForeignKeys); InitializeColumnMappings(crud.DetailForeignKeys); } // Generate the model using the proper technology if (WizardForm.DataAccessTechnology == DataAccessTechnology.EntityFramework5 || WizardForm.DataAccessTechnology == DataAccessTechnology.EntityFramework6) { if (WizardForm.DataAccessTechnology == DataAccessTechnology.EntityFramework5) { CurrentEntityFrameworkVersion = ENTITY_FRAMEWORK_VERSION_5; } else { CurrentEntityFrameworkVersion = ENTITY_FRAMEWORK_VERSION_6; } AddNugetPackage(vsProj, ENTITY_FRAMEWORK_PCK_NAME, CurrentEntityFrameworkVersion, true); GenerateEntityFrameworkModel(project, vsProj, WizardForm.Connection, "Model1", tables.ToList(), ProjectPath); } else if (WizardForm.DataAccessTechnology == DataAccessTechnology.TypedDataSet) { PopulateColumnMappingsForTypedDataSet(); GenerateTypedDataSetModel(vsProj, WizardForm.Connection, tables.ToList()); } try { _hasDataGridDateColumn = false; // Start a loop here, to generate screens for all the selected tables. for (int i = 0; i < WizardForm.SelectedTables.Count; i++) { AdvancedWizardForm crud = WizardForm.CrudConfiguration[WizardForm.SelectedTables[i].Name]; Dictionary <string, Column> columns = crud.Columns; Dictionary <string, Column> detailColumns = crud.DetailColumns; string canonicalTableName = GetCanonicalIdentifier(crud.TableName); string detailTableName = crud.DetailTableName; //string canonicalDetailTableName = GetCanonicalIdentifier(detailTableName); if (!TablesIncludedInModel.ContainsKey(crud.TableName)) { SendToGeneralOutputWindow(string.Format("Skipping generation of screen for table '{0}' because it does not have primary key.", crud.TableName)); continue; } if ((crud.GuiType == GuiType.MasterDetail) && !TablesIncludedInModel.ContainsKey(crud.DetailTableName)) { // If Detail table does not have PK, then you cannot edit details, "degrade" layout from Master Detail to Individual Controls. crud.GuiType = GuiType.IndividualControls; SendToGeneralOutputWindow(string.Format( "Degrading layout for table '{0}' from master detail to single controls (because detail table '{1}' does not have primary key).", crud.TableName, crud.DetailTableName)); } // Create the strategy StrategyConfig config = new StrategyConfig(_sw, canonicalTableName, columns, detailColumns, WizardForm.DataAccessTechnology, crud.GuiType, Language, crud.ValidationsEnabled, crud.ValidationColumns, crud.ValidationColumnsDetail, WizardForm.ConnectionStringWithIncludedPassword, WizardForm.ConnectionString, crud.TableName, detailTableName, crud.ConstraintName, crud.ForeignKeys, crud.DetailForeignKeys); WindowsFormsCodeGeneratorStrategy strategy = WindowsFormsCodeGeneratorStrategy.GetInstance(config); strategies.Add(WizardForm.SelectedTables[i].Name, strategy); if (!_hasDataGridDateColumn) { EnsureCodeForDateTimeGridColumn(vsProj, columns, detailColumns); } string frmName = string.Format("frm{0}", canonicalTableName); //string frmDesignerName = string.Format("frm{0}.designer", canonicalTableName); // Add new form to project. AddNewForm(project, frmName, strategy); } } catch (WizardException e) { SendToGeneralOutputWindow(string.Format("An error ocurred: {0}\n\n{1}", e.Message, e.StackTrace)); } // Now generated the bindings & custom code List <string> formNames = new List <string>(); List <string> tableNames = new List <string>(); for (int i = 0; i < WizardForm.SelectedTables.Count; i++) { AdvancedWizardForm crud = WizardForm.CrudConfiguration[WizardForm.SelectedTables[i].Name]; string canonicalTableName = GetCanonicalIdentifier(crud.TableName); if (!TablesIncludedInModel.ContainsKey(crud.TableName)) { continue; } string frmName = string.Format("frm{0}", canonicalTableName); formNames.Add(frmName); tableNames.Add(crud.TableName); string frmDesignerName = string.Format("frm{0}.designer", canonicalTableName); WindowsFormsCodeGeneratorStrategy strategy = strategies[WizardForm.SelectedTables[i].Name]; AddBindings(vsProj, strategy, frmName, frmDesignerName); } // Add menu entries for each form AddMenuEntries(vsProj, formNames, tableNames); if (WizardForm.DataAccessTechnology == DataAccessTechnology.EntityFramework6) { // Change target version to 4.5 (only version currently supported for EF6). project.Properties.Item("TargetFrameworkMoniker").Value = ".NETFramework,Version=v4.5"; // This line is a hack to avoid "Project Unavailable" exceptions. project = (Project)((Array)(Dte.ActiveSolutionProjects)).GetValue(0); vsProj = project.Object as VSProject; } RemoveTemplateForm(vsProj); FixNamespaces(); SendToGeneralOutputWindow("Building Solution..."); project.DTE.Solution.SolutionBuild.Build(true); Settings.Default.WinFormsWizardConnection = WizardForm.ConnectionName; Settings.Default.Save(); SendToGeneralOutputWindow("Finished project generation."); if (project.DTE.Solution.SolutionBuild.LastBuildInfo > 0) { InfoDialog.ShowDialog(InfoDialogProperties.GetErrorDialogProperties(Resources.ErrorTitle, Resources.WindowsFormsWizard_SolutionBuildFailed)); } WizardForm.Dispose(); } catch (WizardException e) { SendToGeneralOutputWindow(string.Format("An error ocurred: {0}\n\n{1}", e.Message, e.StackTrace)); } #else throw new NotImplementedException(); #endif }
internal VBDataGridStrategy(StrategyConfig config) : base(config) { }
protected override void OnSetConfig(StrategyConfig config) { _arg.Path = config["path"].StringValue; }
/// <summary> /// Factory method to get a concrete implementation. /// </summary> /// <param name="tech"></param> /// <param name="type"></param> /// <returns></returns> public static WindowsFormsCodeGeneratorStrategy GetInstance(StrategyConfig config) { WindowsFormsCodeGeneratorStrategy strategy = null; GuiType type = config.Type; switch (type) { case GuiType.IndividualControls: if (config.Language == LanguageGenerator.CSharp) { if (config.DataAccessTech == DataAccessTechnology.TypedDataSet) { strategy = new CSharpTypedDatasetIndividualControlsStrategy(config); } else { // Entity Framework strategy = new CSharpEntityFrameworkIndividualControlsStrategy(config); } } else { if (config.DataAccessTech == DataAccessTechnology.TypedDataSet) { strategy = new VBTypedDatasetIndividualControlsStrategy(config); } else { strategy = new VBEntityFrameworkIndividualControlsStrategy(config); } } break; case GuiType.Grid: if (config.Language == LanguageGenerator.CSharp) { if (config.DataAccessTech == DataAccessTechnology.TypedDataSet) { strategy = new CSharpTypedDatasetDataGridStrategy(config); } else { strategy = new CSharpEntityFrameworkDataGridStrategy(config); } } else { if (config.DataAccessTech == DataAccessTechnology.TypedDataSet) { strategy = new VBTypedDatasetDataGridStrategy(config); } else { strategy = new VBEntityFrameworkDataGridStrategy(config); } } break; case GuiType.MasterDetail: if (config.Language == LanguageGenerator.CSharp) { if (config.DataAccessTech == DataAccessTechnology.TypedDataSet) { strategy = new CSharpTypedDatasetMasterDetailStrategy(config); } else { strategy = new CSharpEntityFrameworkMasterDetailStrategy(config); } } else { if (config.DataAccessTech == DataAccessTechnology.TypedDataSet) { strategy = new VBTypedDatasetMasterDetailStrategy(config); } else { strategy = new VBEntityFrameworkMasterDetailStrategy(config); } } break; } return(strategy); }
internal VBTypedDatasetMasterDetailStrategy(StrategyConfig config) : base(config) { }
internal CSharpIndividualControlsStrategy(StrategyConfig config) : base(config) { }
internal CSharpMasterDetailStrategy(StrategyConfig config) : base(config) { }
internal CSharpEntityFrameworkDataGridStrategy(StrategyConfig config) : base(config) { }
internal VBEntityFrameworkMasterDetailStrategy(StrategyConfig config) : base(config) { }