public override string GetJsForSettingProperty() { string retStr; var error = new ValidateErrorList(); foreach (var _b in Control.Binders.Where((b) => b is ValidatorBinder)) { var b = _b as ValidatorBinder; if (b.ModelValidateMethod == null && b.ModelValidateMethodName == null) throw new Exception(nameof(ValidatorBinder) + ": модель '" + Control.Model.GetType().FullName + "', control '" + Control.GetType().FullName + "' - для привязки нужно указать или имя validate-метода или сам validate-метод"); if (b.ModelValidateMethod != null) { b.ModelValidateMethod(error); } else if (b.ModelValidateMethodName != null) { Control.Model.InvokeMethod(b.ModelValidateMethodName, error); } } if (!error.IsEmpty) retStr = "$('#" + Control.UniqueId + "-error-text').removeClass('hidden').html(" + error.ToHtmlStringOnlyMessages().AsJavaScript() + "); $('#" + Control.UniqueId + "').parents('.form-group').first().addClass('has-error');"; else retStr = "$('#" + Control.UniqueId + "-error-text').addClass('hidden');$('#" + Control.UniqueId + "').parents('.form-group').first().removeClass('has-error');"; foreach (var _b in Control.Binders.Where((b) => b is ValidatorBinder)) { if (_b != this) _b.LastSendedText = retStr; } return retStr; }
public override void SaveChanges() { ActivateAllValidatorBinders(); var errors = new ValidateErrorList(); Column.Validate(errors); if (!errors.IsEmpty) { ShowErrorMessageDialog("Есть ошибки", "@" + errors.ToHtmlString()); } else { base.SaveChanges(); Modal.Close(); if (ParentModel != null) { ParentModel.Update(true); (ParentModel as SchemaTableDesignerModel).SelectedColumnByColumnName(Column.Name); } } }
public virtual void Validate(ValidateErrorList error) { //if (ReportID == null) //{ // error.AppendLine("У привязанной печатной формы не указан шаблон."); //} //var report = App.Schema.GetSampleObject<SchemaReport>((Guid)ReportID); //if (ReportID == null) //{ // error.AppendLine("У привязанной печатной формы указан неверный шаблон."); //} //if (Copies < 0) //{ // error.AppendLine("У привязанной печатной формы указано отрицательное к-во копий"); //} //if (Copies == 0) //{ // error.AppendLine("У привязанной печатной формы указано нулевое к-во копий"); //} }
public override void SaveChanges() { ActivateAllValidatorBinders(); var errors = new ValidateErrorList(); Column.Validate(errors); if (!errors.IsEmpty) { ShowErrorMessageDialog("Есть ошибки", "@" + errors.ToHtmlString()); } else { //var newDataType = EditedColumnDataTypes.Find((dt) => dt.Name == EditedColumnDataTypeName); //Column.DataType = newDataType.Clone();// (SqlDataType)Activator.CreateInstance(newDataType.GetType()); //Column.DataType.Column = Column; Column.Table.Columns.Add(Column); base.SaveChanges(); Modal.Close(); if (ParentModel != null) { ParentModel.Update(true); (ParentModel as SchemaTableDesignerModel).SelectedColumnByColumnName(Column.Name); } } }
public override void Validate(ValidateErrorList error) { base.Validate(error); if (Name != null && Name.Length > 128) error.AddError("Имя таблицы", "Имя таблицы длинее 128 символов."); if (TableRoles.Count == 0) error.AddError("Роли", "Не указана ни одна роль таблицы."); foreach (var helperTable in App.Schema.HelperTables) { if (Name != null && Name.Equals(helperTable.Name, StringComparison.OrdinalIgnoreCase)) error.AddError("Имя таблицы", "Таблица не может называться " + Name.AsSQL() + ", есть такая системная таблица."); } if (Name != null && Name.StartsWith(logPrefix, StringComparison.OrdinalIgnoreCase)) error.AddError("Имя таблицы", "Имя таблицы не может начинаться с '" + logPrefix + "'"); // уникальность имен колонок var uniqueList = new HashSet<string>(); foreach (var tableCol in Columns) { if (uniqueList.Contains(tableCol.Name)) error.AddError("Таблица", "Есть несколько колонок с именем " + tableCol.Name.AsSQL()); else uniqueList.Add(tableCol.Name); } // валидация колонок foreach (var tableCol in Columns) tableCol.Validate(error); // валидация деталей foreach (var tableDetail in Details) tableDetail.Validate(error); // валидация привязнных печатных форм foreach (var linkedReport in LinkedReports) linkedReport.Validate(error); foreach (var tableRoleID in TableRoles) { if (!SchemaBaseRole.Roles.ContainsKey(tableRoleID)) { error.AddError(Name, "У таблицы указана неверная роль: " + tableRoleID.AsSQL()); } else { var role = SchemaBaseRole.Roles[tableRoleID]; if (role is Таблица_TableRole) { var tableRole = role as Таблица_TableRole; // проверка наличия обязательных ролевых полей foreach (var roleCol in tableRole.Columns.Where(col => col.IsRequiredColumn)) { foreach (var tableCol in Columns) { if (tableCol.ColumnRoles.Contains(roleCol.ID)) goto m1; } error.AddError(Name, "Отсутствует обязательная колонка с ролью: " + roleCol.Name.AsSQL()); m1:; } // проверка наличия обязательных ролевых полей foreach (var roleCol in tableRole.Columns.Where(col => !col.IsMultiColumn)) { int count = 0; foreach (var tableCol in Columns) { if (tableCol.ColumnRoles.Contains(roleCol.ID)) count++; } if (count > 1) error.AddError(Name, "Есть несколько колонок с уникальной ролью: " + roleCol.Name.AsSQL()); } } else { error.AddError(Name, "У таблицы указана неверная роль: " + role.Name.AsSQL()); } } } }
public virtual void Validate(ValidateErrorList errors) { if (Column == null) errors.AddError(Name,"У типа данных не заполнено поле 'Column'."); }
public virtual void Validate_Roles(ValidateErrorList error) { if (ColumnRoles.Count == 0 && !(this is SchemaTableSystemColumn)) error.AddError(Name, "У колонки нет ролей."); }
public virtual void Validate_Name(ValidateErrorList error) { if (string.IsNullOrWhiteSpace(Name)) error.AddError(Name,"Имя колонки не может быть пустым"); if (Name != null && Name.Length > 128) error.AddError(Name, "Имя колонки длинее 128 символов"); if (!Table.Columns.Contains(this) && Table.GetColumnByName(Name) != null) // колонка в процессе добавления error.AddError(Name, "уже есть колонка с таким именем"); }
public virtual void Validate(ValidateErrorList error) { Validate_Name(error); Validate_Roles(error); //if (string.IsNullOrWhiteSpace(Name)) // error.AppendLine("У колонки не заполнено поле 'Имя'."); //if (Name != null && Name.Length > 128) // error.AppendLine("Имя колонки длинее 128 символов: " + Name.Substring(0, 50).AsSQL()); if (DataType == null) error.AddError(Name, "У колонки не заполнено поле 'Тип данных'."); if (Table == null) error.AddError(Name, "У колонки не заполнено поле 'Таблица'."); //if (ColumnRoles.Count == 0 && !(this is SchemaTableSystemColumn)) // error.AppendLine("У колонки " + Name.AsSQL() + " нет ролей."); if (DataType != null) DataType.Validate(error); }
public virtual void Validate(ValidateErrorList error) { if (string.IsNullOrWhiteSpace(Name)) { error.AddError(Name, "У детали не заполнено поле 'Имя'."); Name = ""; } if (DetailTableID == null) error.AddError(Name, "У детали не заполнена соответствующая таблица."); if (DetailQueryID == null) error.AddError(Name, "У детали не заполнен запрос для отображения."); if (Opers.Count > 0 && DetailTableID != null) { if (GetDetailTable(true).GetColumnByRole(RoleConst.ВложеннаяТаблица_БизнесОперация)==null) error.AddError(GetDetailTable().Name, "У деталь-таблицы должна быть колонка с ролью 'ВложеннаяТаблица.БизнесОперация'."); } }
public virtual void Validate(ValidateErrorList error) { if (ID == Guid.Empty) error.AddError(Name, "Пустое поле 'ID'."); if (string.IsNullOrWhiteSpace(Name)) error.AddError(Name, "Не заполнено поле 'Имя'."); }
public override void Validate(ValidateErrorList error) { base.Validate(error); if (RefTableID == null) error.AddError((Column.Name == null ? "?" : Column.Name),"У колонки не заполнена ссылка на таблицу - внешний ключ."); else { if (!SchemaBaseRole.Roles.ContainsKey((Guid)RefTableID)) { var table = App.Schema.GetObject<SchemaTable>((Guid)RefTableID); if (table == null) error.AddError((Column.Name == null ? "?" : Column.Name), "У колонки неверная ссылка на таблицу - внешний ключ."); } } }