private void AddDefaultChild() { var defaultModel = new ResultFieldModel(this); defaultModel.ColumnNameChanged += DefaultModelChanged; defaultModel.NameChanged += DefaultModelChanged; ResultFields.Add(defaultModel); }
private void CreateFromSQL() { try { var connectionType = executeSQLDesigner.ResolvedConnectionType; string connectionString = executeSQLDesigner.ResolvedConnectionString; DataTable schemaTable = DatabaseHelpers.RetrieveSchema(connectionType, connectionString, SqlStringHandler.GetSqlStringHandler(this.executeSQLDesigner.ResolvedSqlStatementValue ?? string.Empty).GetExecutableDesignTimeSql()); var newResults = new List <ResultFieldModel>(); foreach (DataColumn dataColumn in schemaTable.Columns) { var oldModel = ResultFields.FirstOrDefault(x => x.ColumnName == dataColumn.ColumnName); if (oldModel != null) { newResults.Add(oldModel); continue; } ResultFieldModel newModel = new ResultFieldModel(this); newModel.IsDefault = false; newModel.ColumnName = dataColumn.ColumnName; newModel.Name = DatabaseHelpers.GetValidName(dataColumn.ColumnName); newModel.SetTypeReferenceValues(dataColumn.DataType); newModel.NameChanged += ModelNameChanged; newModel.ColumnNameChanged += ModelColumnNameChanged; newResults.Add(newModel); } ResultFields.Where(x => !newResults.Contains(x)).ToList().ForEach(x => { x.NameChanged -= ModelNameChanged; x.ColumnNameChanged -= ModelColumnNameChanged; }); ResultFields.Clear(); newResults.ForEach(x => ResultFields.Add(x)); AddDefaultChild(); } catch (Exception exception) { MessageBox.Show(exception.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } }
public ResultTypeViewModel(ExecuteSQLDesigner executeSQLDesigner) { this.executeSQLDesigner = executeSQLDesigner; CreateDataFromSql = new DelegateCommand(CreateFromSQL, CanCreateFromSQL); Save = new DelegateCommand(ExecuteSave); selectedCustomType = executeSQLDesigner.ResultTypeValue.CustomType; foreach (var resultType in executeSQLDesigner.ResultTypeValue.Fields) { var model = new ResultFieldModel(this, resultType); model.ColumnNameChanged += ModelColumnNameChanged; model.NameChanged += ModelNameChanged; ResultFields.Add(model); } AddDefaultChild(); }
private void ValidateName(ResultFieldModel field) { var sameNameFields = ResultFields.Where(f => (f.Name ?? string.Empty) == (field.Name ?? string.Empty) && !f.IsDefault); field.NameIsValid = string.IsNullOrWhiteSpace(field.Name) || (sameNameFields.Count() == 1 && Names.IsNameValid(field.Name) && (!IsMappingCustomType || CustomTypeProperties.Contains(field.Name))); }
private void ValidateColumnName(ResultFieldModel field) { var sameNameFields = ResultFields.Where(x => (x.ColumnName ?? string.Empty).Equals(field.ColumnName ?? string.Empty, StringComparison.InvariantCultureIgnoreCase) && !x.IsDefault); field.ColumnNameIsValid = string.IsNullOrWhiteSpace(field.ColumnName) || sameNameFields.Count() == 1; }
internal void MoveTo(ResultFieldModel toMove, int destinationIndex) { ResultFields.Move(ResultFields.IndexOf(toMove), destinationIndex); }