public DataValidationException(string fieldName, DataValidationFailure dataValidationFailure, int valueBoundary, int actualValue) { switch (dataValidationFailure) { case DataValidationFailure.StringTooShort: InitComponent(fieldName, dataValidationFailure, $"Length of {actualValue} is less than expected {valueBoundary}"); break; case DataValidationFailure.StringTooLong: InitComponent(fieldName, dataValidationFailure, $"Length of {actualValue} is more than allowed {valueBoundary}"); break; case DataValidationFailure.IntegerTooLow: InitComponent(fieldName, dataValidationFailure, $"Value of {actualValue} is less than expected {valueBoundary}"); break; case DataValidationFailure.IntegerTooHigh: InitComponent(fieldName, dataValidationFailure, $"Length of {actualValue} is more than allowed {valueBoundary}"); break; default: throw new ArgumentOutOfRangeException(nameof(dataValidationFailure), dataValidationFailure, null); } }
public DataValidationException(string fieldName, DataValidationFailure dataValidationFailure) { switch (dataValidationFailure) { case DataValidationFailure.ParentEntityNull: InitComponent(fieldName, dataValidationFailure, "Parent entity is null"); break; case DataValidationFailure.ForeignKeyNotPopulated: InitComponent(fieldName, dataValidationFailure, "Foreign key not populated"); break; case DataValidationFailure.ForeignKeyPopulated: InitComponent(fieldName, dataValidationFailure, "Foreign key populated"); break; case DataValidationFailure.ForeignKeyNegativeValue: InitComponent(fieldName, dataValidationFailure, "Foreign key populated with a negative value"); break; case DataValidationFailure.ChildCollectionNotEmpty: InitComponent(fieldName, dataValidationFailure, "Child collection is not empty"); break; case DataValidationFailure.DecimalIsZero: case DataValidationFailure.IntegerIsZero: InitComponent(fieldName, dataValidationFailure, "Value unexpectedly zero"); break; default: throw new ArgumentOutOfRangeException(nameof(dataValidationFailure), dataValidationFailure, null); } }
public DataValidationException(string fieldName, DataValidationFailure dataValidationFailure, bool actualValue) { switch (dataValidationFailure) { case DataValidationFailure.IllegalValue: InitComponent(fieldName, dataValidationFailure, $"Illegal boolean value of {actualValue}"); break; default: throw new ArgumentOutOfRangeException(nameof(dataValidationFailure), dataValidationFailure, null); } }
public DataValidationException(string field1Name, string field2Name, DataValidationFailure dataValidationFailure) { switch (dataValidationFailure) { case DataValidationFailure.NoneOrBoth: InitComponent(field1Name + "/" + field2Name, dataValidationFailure, "Fields must be either both null or both have values"); break; default: throw new ArgumentOutOfRangeException(nameof(dataValidationFailure), dataValidationFailure, null); } }
public DataValidationException( string field1Name, string field2Name, DateTime value1, DateTime value2, DataValidationFailure dataValidationFailure) { switch (dataValidationFailure) { case DataValidationFailure.FromDateAfterToDate: InitComponent(field1Name + "/" + field2Name, dataValidationFailure, $"{field1Name} ({value1}) is after {field2Name} ({value2})"); break; default: throw new ArgumentOutOfRangeException(nameof(dataValidationFailure), dataValidationFailure, null); } }
public DataValidationException(string fieldName, DataValidationFailure dataValidationFailure, DateTime?valueBoundary, DateTime?actualValue) { string type = fieldName.Contains("Time") ? "DateTime" : "Date"; switch (dataValidationFailure) { case DataValidationFailure.DateTimeTooEarly: InitComponent(fieldName, dataValidationFailure, $"{type} of {actualValue} is earlier than expected {valueBoundary}"); break; case DataValidationFailure.DateTimeTooLate: InitComponent(fieldName, dataValidationFailure, $"{type} of {actualValue} is later than allowed {valueBoundary}"); break; default: throw new ArgumentOutOfRangeException(nameof(dataValidationFailure), dataValidationFailure, null); } }
/// <summary> /// Convert unit of measure for item reservations. /// </summary> /// <param name="context">The request context.</param> /// <param name="itemReservations">The item reservations.</param> /// <param name="itemUnitConversions">The item unit conversions.</param> /// <exception cref="DataValidationException">Thrown if there is no conversion rules defined for any of item reservations.</exception> internal static void ConvertUnitOfMeasure(RequestContext context, IEnumerable <ItemReservation> itemReservations, IEnumerable <ItemUnitConversion> itemUnitConversions) { Collection <DataValidationFailure> validationFailures = new Collection <DataValidationFailure>(); Dictionary <ItemUnitConversion, UnitOfMeasureConversion> conversions = GetUnitOfMeasureConversions(context, itemUnitConversions); IEnumerator <ItemReservation> itemReservationEnumerator = itemReservations.GetEnumerator(); IEnumerator <ItemUnitConversion> itemUnitConversionEnumerator = itemUnitConversions.GetEnumerator(); while (itemReservationEnumerator.MoveNext() && itemUnitConversionEnumerator.MoveNext()) { ItemUnitConversion itemUnitConversion = itemUnitConversionEnumerator.Current; if (!itemUnitConversion.IsNop) { UnitOfMeasureConversion unitOfMeasureConversion; if (conversions.TryGetValue(itemUnitConversion, out unitOfMeasureConversion)) { ItemReservation itemReservation = itemReservationEnumerator.Current; itemReservation.Quantity = unitOfMeasureConversion.Convert(itemReservation.Quantity); } else { DataValidationFailure validationFailure = new DataValidationFailure(DataValidationErrors.Microsoft_Dynamics_Commerce_Runtime_UnitOfMeasureConversionNotFound); validationFailure.ErrorContext = string.Format(CultureInfo.InvariantCulture, "No conversion rules defined for ItemUnitConversion:{0}", itemUnitConversion); validationFailures.Add(validationFailure); } } } if (validationFailures.Count > 0) { throw new DataValidationException( DataValidationErrors.Microsoft_Dynamics_Commerce_Runtime_AggregateValidationError, validationFailures, string.Format("There are {0} item reservations whose unit of measures cannot be converted.", validationFailures.Count)); } }
private void InitComponent(string fieldName, DataValidationFailure dataValidationFailure, string details = "") { FieldName = fieldName; DataValidationFailure = dataValidationFailure; Details = details; }