public void SetMergeDirection(a7DbComparerDirection direction, bool fromTableComparer) { if (!IsDifferent) { MergeDirection = a7DbComparerDirection.None; SQL = ""; OnPropChanged("MergeDirection"); return; } MergeDirection = direction; if (!fromTableComparer) { _tblComparer.RefreshMergeDirection(); } if (direction == a7DbComparerDirection.None) { SQL = ""; } else if (direction == a7DbComparerDirection.AtoB) { SQL = getMergeQuery(_tblComparer.DbAName, _dataRowA, _tblComparer.DbBName, _dataRowB, _tblComparer.PrimaryKeyColumnsB, _tblComparer.ColumnsB, _tblComparer.ColumnsA); } else if (direction == a7DbComparerDirection.BtoA) { SQL = getMergeQuery(_tblComparer.DbBName, _dataRowB, _tblComparer.DbAName, _dataRowA, _tblComparer.PrimaryKeyColumnsA, _tblComparer.ColumnsA, _tblComparer.ColumnsB); } OnPropChanged("MergeDirection"); }
public async Task SetMergeDirection(a7DbComparerDirection direction) { if (this.Tables == null) { return; } MergeDirection = direction; if (direction != a7DbComparerDirection.Partial) { await Task.WhenAll(Tables.Where(t => t.IsOK) .Select(t => t.SetMergeDirection(direction, true))); } OnPropertyChanged(nameof(MergeDirection)); }
public async Task SetMergeDirection(a7DbComparerDirection direction, bool isFromDbComparer = false) { if (this.Rows == null) { await AnalyzeTable(); } MergeDirection = direction; if (!isFromDbComparer) { _comparer.RefreshMergeDirection(); } if (direction != a7DbComparerDirection.Partial) { foreach (var row in Rows) { if (direction == a7DbComparerDirection.None) { row.SetMergeDirection(direction, true); } else if (direction == a7DbComparerDirection.AtoB) { if (row.IsOnlyInB && !MergeWithDelete) { row.SetMergeDirection(a7DbComparerDirection.None, true); } else { row.SetMergeDirection(direction, true); } } else if (direction == a7DbComparerDirection.BtoA) { if (row.IsOnlyInA && !MergeWithDelete) { row.SetMergeDirection(a7DbComparerDirection.None, true); } else { row.SetMergeDirection(direction, true); } } } } OnPropertyChanged(nameof(MergeDirection)); }