public override IDataValidationResults <TKey> Deleting(TKey id, IDataValidationResults <TKey> validationResults, params object[] args) { if (args == null || args.Length == 0) { throw new ArgumentNullException("args[0] should contain reference to XPO entity"); } IDataValidationResults <TKey> result = new DataValidationResults <TKey>(); TXPORole role = args[0] as TXPORole; if (role != null) { int userCount = (int)role.Session.Evaluate(typeof(XpoDxUser), CriteriaOperator.Parse("Count"), CriteriaOperator.Parse("Roles[Id == ?]", role.Id)); if (userCount > 0) { result.Add(new DataValidationResult <TKey> { ResultType = DataValidationResultType.Error, ID = id, Message = $"Role '{role.Name}' cannot be deleted because there are users in this Role" }); } } if (result == null) { result = base.Deleting(id, validationResults, args); } validationResults.AddRange(result); return(result); }
private static IDataValidationResults Validate(IDataValidationResults result, DataSet dataSet, int maxErrorRows, bool recursive) { foreach (var dataRow in dataSet) { if (maxErrorRows > 0 && result.Count >= maxErrorRows) { return(result); } var errors = dataRow.Validate(); if (errors != null && errors.Count > 0) { result = result.Add(new DataValidationResult(dataRow, errors)); } if (recursive) { var childModels = dataSet.Model.ChildModels; foreach (var childModel in childModels) { var childDataSet = dataRow[childModel]; result = Validate(result, childDataSet, maxErrorRows, recursive); } } } return(result); }
public override IDataValidationResult <TKey> Deleting(TKey id, object arg, IDataValidationResults <TKey> validationResults) { IDataValidationResult <TKey> result = null; TXPORole role = arg as TXPORole; if (role != null) { int userCount = (int)role.Session.Evaluate(typeof(XpoDxUser), CriteriaOperator.Parse("Count"), CriteriaOperator.Parse("Roles[Id == ?]", role.ID)); if (userCount > 0) { result = new DataValidationResult <TKey> { ResultType = DataValidationResultType.Error, ID = role.ID, Message = String.Format("Role '{0}' cannot be deleted because there are users in this Role", role.Name) } } ; } if (result == null) { result = base.Deleting(id, arg, validationResults); } validationResults.Add(result); return(result); } }
public override IDataValidationResults <TKey> Deleting(TKey id, IDataValidationResults <TKey> validationResults, params object[] args) { var result = new DataValidationResults <TKey>( new DataValidationResult <TKey>(DataValidationResultType.Success, id, string.Empty, string.Empty, 0, DataValidationEventType.Inserting)); validationResults.AddRange(result.Results); return(result); }
public override IDataValidationResults <TKey> Updating(TModel model, IDataValidationResults <TKey> validationResults) { var result = new DataValidationResults <TKey>( new DataValidationResult <TKey>(DataValidationResultType.Success, model.ID, string.Empty, string.Empty, 0, DataValidationEventType.Updating)); validationResults.AddRange(result.Results); return(result); }
public override IDataValidationResult <TKey> Updating(TModel model, IDataValidationResults <TKey> validationResults) { var result = new DataValidationResult <TKey> { ResultType = DataValidationResultType.Success, ID = model.ID }; validationResults.Add(result); return(result); }
public override IDataValidationResult <TKey> Deleting(TKey id, object arg, IDataValidationResults <TKey> validationResults) { var result = new DataValidationResult <TKey> { ResultType = DataValidationResultType.Success, ID = id }; validationResults.Add(result); return(result); }
/// <summary> /// Sets the async validation errors. /// </summary> /// <param name="validationResults">The validation results.</param> public void SetAsyncErrors(IDataValidationResults validationResults) { if (_asyncErrorsByRow != null) { _asyncErrorsByRow.Clear(); } for (int i = 0; i < validationResults.Count; i++) { var entry = validationResults[i]; var rowPresenter = _inputManager[entry.DataRow]; if (rowPresenter != null) { AsyncErrorsByRow.Add(rowPresenter, entry.Errors); } } InvalidateView(); }
/// <summary> /// Parses JSON into <see cref="IDataValidationResults"/> object. /// </summary> /// <param name="jsonReader">The <see cref="JsonReader"/>.</param> /// <param name="dataSet">The DataSet of validation.</param> /// <returns>The <see cref="IDataValidationResults"/> object.</returns> public static IDataValidationResults ParseDataValidationResults(this JsonReader jsonReader, DataSet dataSet) { IDataValidationResults results = DataValidationResults.Empty; jsonReader.ExpectToken(JsonTokenKind.SquaredOpen); if (jsonReader.PeekToken().Kind == JsonTokenKind.CurlyOpen) { results = results.Add(jsonReader.ParseDataValidationResult(dataSet)); while (jsonReader.PeekToken().Kind == JsonTokenKind.Comma) { jsonReader.ConsumeToken(); results = results.Add(jsonReader.ParseDataValidationResult(dataSet)); } } jsonReader.ExpectToken(JsonTokenKind.SquaredClose); return(results); }
/// <summary> /// Writes <see cref="IDataValidationResults"/> object into JSON. /// </summary> /// <param name="jsonWriter">The <see cref="JsonWriter"/>.</param> /// <param name="dataValidationResults">The <see cref="IDataValidationResults"/> object.</param> /// <returns>This <see cref="JsonWriter"/> for fluent coding.</returns> public static JsonWriter Write(this JsonWriter jsonWriter, IDataValidationResults dataValidationResults) { return(jsonWriter.WriteArray(dataValidationResults, (writer, entry) => writer.Write(entry))); }
public abstract IDataValidationResult <TKey> Updating(TModel model, IDataValidationResults <TKey> validationResults);
//public abstract bool Inserting(TModel model); //public abstract bool Updating(TModel model); //public abstract bool Deleting(TModel model); public abstract IDataValidationResult <TKey> Deleting(TKey id, IDataValidationResults <TKey> validationResults, params object[] args);
public DataValidationException(IDataValidationResults <TKey> validationResults) : base() { ValidationResults = validationResults; }
//public abstract bool Inserting(TModel model); //public abstract bool Updating(TModel model); //public abstract bool Deleting(TModel model); public abstract IDataValidationResult <TKey> Deleting(TKey id, object arg, IDataValidationResults <TKey> validationResults);
public override IDataValidationResults <TKey> Inserting(TModel model, IDataValidationResults <TKey> validationResults) { var result = new DataValidationResults <TKey>( new DataValidationResult <TKey>(DataValidationResultType.Success, default, string.Empty, string.Empty, 0, DataValidationEventType.Inserting));
/// <summary> /// Serializes <see cref="IDataValidationResults"/> dictionary into JSON string. /// </summary> /// <param name="validationResults">The <see cref="IDataValidationResults"/> dictionary.</param> /// <param name="isPretty">Determines whether serialized JSON string should be indented.</param> /// <param name="customizer">The customizer for JSON serialization.</param> /// <returns>The serialized JSON string.</returns> public static string ToJsonString(this IDataValidationResults validationResults, bool isPretty, IJsonCustomizer customizer = null) { return(JsonWriter.Create(customizer).Write(validationResults).ToString(isPretty)); }
public override IDataValidationResult <TKey> Inserted(TModel model, TXPOClass dbModel, IDataValidationResults <TKey> validationResults) { var result = new DataValidationResult <TKey> { ResultType = DataValidationResultType.Success, ID = dbModel.ID }; validationResults.Add(result); return(result); }
public override IDataValidationResult <TKey> Deleted(TKey id, TXPOClass dbModel, IDataValidationResults <TKey> validationResults) { var result = new DataValidationResult <TKey> { ResultType = DataValidationResultType.Success, ID = id }; validationResults.Add(result); return(result); }
public override IDataValidationResults <TKey> Inserted(TKey id, TModel model, TEFClass dbModel, IDataValidationResults <TKey> validationResults) { var result = new DataValidationResults <TKey>( new DataValidationResult <TKey>(DataValidationResultType.Success, id, string.Empty, string.Empty, 0, DataValidationEventType.Inserted)); validationResults.AddRange(result.Results); return(result); }
public override IDataValidationResults <TKey> Deleted(TKey id, TXPOClass dbModel, IDataValidationResults <TKey> validationResults) { var result = new DataValidationResults <TKey>( new DataValidationResult <TKey>(DataValidationResultType.Success, dbModel.ID, string.Empty, string.Empty, 0, DataValidationEventType.Deleted)); validationResults.AddRange(result.Results); return(result); }