private void ViewCSharpScript_Cliked(object sender, RoutedEventArgs e) { try { ErdCanvasModel canvas = EventParser.ParseQuery(this, new ParseQueryEventArguments { Title = "TableObjectCanvasQuery", Arguments = new object[] { this.Table.TableName } }).To <ErdCanvasModel>(); SampleScript scriptor = new SampleScript(); foreach (OptionSetupModel option in BuildScript.Setup.BuildOptions.Where(o => o.RepeatOption == RepeatOptionEnum.ForeachTableProject)) { scriptor.LanguageOption = option.LanguageOption; string fileName = option.OutputFileName.Replace("[[TableName]]", this.Table.TableName); string filePath = Path.Combine(Path.GetTempPath(), $"{fileName}.txt"); List <ErdCanvasModel> allErdCancases = EventParser.ParseQuery(this, "GetAllErdCanvasesAsList").To <List <ErdCanvasModel> >(); string result = scriptor.BuildSampleForeachTableScript(canvas, allErdCancases, this.Table, option); File.WriteAllText(filePath, result); Process.Start(filePath); } } catch (Exception err) { MessageBox.Show(err.Message); } }
private void File_Changed(object sender, FileSystemEventArgs e) { lock (CanvasLocks.Instance.IgnoreFiles) { if (!General.ProjectModel.LockCanvasOnEditing || CanvasLocks.Instance.IgnoreFiles.Contains(e.FullPath)) { return; } CanvasLocks.Instance.IgnoreFiles.Add(e.FullPath); } if (e.FullPath.EndsWith($".{FileTypes.eclu}")) { string[] fileData = this.ReadFileLines(e.FullPath); ErdCanvasModel segment = JsonConvert.DeserializeObject(fileData[0], typeof(ErdCanvasModel)) as ErdCanvasModel; this.FileChanged?.Invoke(sender, e.FullPath, segment); } else if (e.FullPath.EndsWith($".{FileTypes.eloc}")) { this.FileLockChanged(sender, e.FullPath, e); } }
private string OutputFileName(OptionSetupModel option, ErdCanvasModel canvas, TableModel table) { if (table == null) { string canvasFileName = option.OutputFileName.Replace("[[CanvasName]]", canvas.ModelSegmentControlName); string canvasFilePath = option.OutputDirectory.Replace("[[CanvasName]]", canvas.ModelSegmentControlName); if (!Directory.Exists(canvasFilePath)) { Directory.CreateDirectory(canvasFilePath); } return(Path.Combine(canvasFilePath, canvasFileName)); } string fileName = option.OutputFileName .Replace("[[TableName]]", table.TableName) .Replace("[[CanvasName]]", canvas.ModelSegmentControlName); string filePath = option.OutputDirectory .Replace("[[TableName]]", table.TableName) .Replace("[[CanvasName]]", canvas.ModelSegmentControlName); if (!Directory.Exists(filePath)) { Directory.CreateDirectory(filePath); } return(Path.Combine(filePath, fileName)); }
public TableCanvas(ErdCanvasModel erdSegment, DatabaseModel databaseModel) { this.InitializeComponent(); this.ErdSegment = erdSegment; this.ErdSegment.ErdCanvasModelLockChanged += this.ErdSegmentLock_Changed; this.uxTableCanvas.NewTablePrefix = this.ErdSegment.TablePrefix; foreach (TableModel table in this.ErdSegment.SegmentTables) { this.uxTableCanvas.CreateTableObject(table); } this.uxTableCanvas.DatabaseModel = databaseModel; this.uxTableCanvas.TableAdded += this.Table_Added; this.uxTableCanvas.RemoveTable += this.Table_Removed; this.uxTableCanvas.CanvasChanged += this.Canvas_Changed; this.SizeChanged += this.TableCanvas_SizeChanged; this.uxTabMetadata.Content = $"{this.headingText} {this.ErdSegment.TablePrefix}"; }
public string BuildSampleForeachTableScript(ErdCanvasModel sampleCanvas, List <ErdCanvasModel> allErdModels, TableModel table, OptionSetupModel classOption) { if (classOption.BuildTypes.Length == 0) { return(string.Empty); } this.ErdCanvas = sampleCanvas; this.AllErdCanvasModels = allErdModels; this.SelectedTable = table; StringBuilder result = new StringBuilder(); int minIndex = classOption.BuildTypes.Min(m => m.BuildTypeIndex); BuildTypeModel body = classOption.BuildTypes.FirstOrDefault(mi => mi.BuildTypeIndex == minIndex); result.Append(this.ReplaceParameters(body.Code)); this.BuildTypeIteration(ref result, classOption.BuildTypes); this.ExecuteIfStatment(ref result, 0); return(this.RemoveTrailingCharacters(result)); }
public ErdTabSetup(ErdCanvasModel erdSegment) { this.InitializeComponent(); this.ErdSegment = erdSegment; this.uxModelViewer.Items.Add(erdSegment); }
public BuildOption(ErdCanvasModel sampleCanvas, List <ErdCanvasModel> allErdCanvases) { this.InitializeComponent(); this.SelectedCanvas = sampleCanvas; this.SelectedTable = this.SelectedCanvas.SegmentTables[0]; this.allErdCanvasModels = allErdCanvases; this.Loaded += this.BuildOption_Loaded; }
public BuildSetup(ErdCanvasModel sampleCanvas, List <ErdCanvasModel> allErdCanvases) { this.InitializeComponent(); this.canvas = sampleCanvas; this.allErdCanvasModels = allErdCanvases; this.SetSampleTableOptions(); this.LoadBuildParamaters(); this.SizeChanged += this.BuildSetup_SizeChanged; this.Loaded += this.BuildSetup_Loaded; }
private void SampleTable_Changed(object sender, PropertyChangedEventArgs e) { try { BuildTableOptonsModel optionModel = sender.To <BuildTableOptonsModel>(); DataItemModel dataModel = optionModel.TablesSource.FirstOrDefault(tn => tn.ItemKey.ParseToString() == optionModel.TableName); ErdCanvasModel canvas = this.allErdCanvasModels.FirstOrDefault(c => c.ModelSegmentControlName == dataModel.Tag.ParseToString()); this.selectedTable = canvas.SegmentTables.FirstOrDefault(t => t.TableName == optionModel.TableName); foreach (BuildOption tabItem in this.uxTabs.Items) { tabItem.SelectedTable = this.selectedTable; } } catch (Exception err) { MessageBox.Show(err.Message); } }
public async void RefreshModel(ErdCanvasModel changedModel) { try { await Task.Factory.StartNew(() => { this.uxTableCanvas.CanvasChanged -= this.Canvas_Changed; List <TableModel> removedTables = new List <TableModel>(); TableModel[] existingTables = this.ErdSegment.SegmentTables.ToArray(); // REMOVE DROPED TABLES foreach (TableModel existing in existingTables) { TableModel table = changedModel.SegmentTables.FirstOrDefault(t => t.TableName.ToLower() == existing.TableName.ToLower()); if (table == null) { // The table was removed this.Dispatcher.Invoke(() => { this.uxTableCanvas.RemoveTableFromCanvas(existing); }); removedTables.Add(existing); } } foreach (TableModel remove in removedTables) { this.ErdSegment.SegmentTables.Remove(remove); } foreach (TableModel table in changedModel.SegmentTables) { lock (SingletonLock.Instance.LockObject) { TableModel existing = this.ErdSegment.SegmentTables.FirstOrDefault(t => t.TableName.ToLower() == table.TableName.ToLower()); if (existing == null) { this.Dispatcher.Invoke(() => { this.uxTableCanvas.CreateTableObject(table); }); this.ErdSegment.SegmentTables.Add(table); } else { existing = table.CopyTo(existing); this.Dispatcher.Invoke(() => { this.uxTableCanvas.RefreshTableRelations(existing); }); } } } }); } catch { } finally { this.uxTableCanvas.CanvasChanged += this.Canvas_Changed; } }