public override FieldError ValidateValue(StringBuilder data) { FieldError error = null; string str = data.ToString(); if (minLength >= 0 && data.Length < minLength) { error = DataTypeHelper.GenerateFieldError(X12ErrorCode.DeDataElementTooShortCode, X12ErrorCode.GetDataElementErrorDescription(X12ErrorCode.DeDataElementTooShortCode), str); } if (maxLength >= 0 && data.Length > maxLength) { error = DataTypeHelper.GenerateFieldError(X12ErrorCode.DeDataElementTooLongCode, X12ErrorCode.GetDataElementErrorDescription(X12ErrorCode.DeDataElementTooLongCode), str); } if (mAllowedValues != null && mAllowedValues.Count > 0 && !mAllowedValues.ContainsKey(str)) { //error = DataTypeHelper.GenerateFieldError(X12ErrorCode.DeInvalidCodeValueCode, // X12ErrorCode.GetDataElementErrorDescription(X12ErrorCode.DeInvalidCodeValueCode), str); StringBuilder allowedList = new StringBuilder(); Dictionary <string, string> .KeyCollection keyColl = mAllowedValues.Keys; allowedList.Append('{'); foreach (string key in keyColl) { if (allowedList.Length > 1) { allowedList.Append(", "); } allowedList.Append(key); } allowedList.Append('}'); string errorDescription = "Value {0} not found in list of possible values {1}"; errorDescription = string.Format(errorDescription, str, allowedList.ToString()); error = DataTypeHelper.GenerateFieldError(X12ErrorCode.DeInvalidCodeValueCode, errorDescription, str); } else { CharSet charSet = CharSetFactory.GetCharSetClass(CharSetFactory.ExtendedCharSetIndex); for (int i = 0; i < data.Length; i++) { if (!charSet.IsMember(data[i])) { error = DataTypeHelper.GenerateFieldError(X12ErrorCode.DeInvalidCharacterInDataElementCode, X12ErrorCode.GetDataElementErrorDescription(X12ErrorCode.DeInvalidCharacterInDataElementCode), data.ToString()); break; } } } return(error); }
/* * All characters are allowed, however length restriction needs to be obeyed * Leading spaces are allowed only for min length restriction */ public override FieldError ValidateValue(StringBuilder data) { FieldError error = null; string str = data.ToString(); bool isLeadingSpace = data.Length > 0 && data[0] == ' '; bool isTrailingSpace = data.Length > 0 && data[data.Length - 1] == ' ' && data.ToString().Trim().Length != 0; if (minLength >= 0 && data.Length < minLength) { error = DataTypeHelper.GenerateFieldError(X12ErrorCode.DeDataElementTooShortCode, X12ErrorCode.GetDataElementErrorDescription(X12ErrorCode.DeDataElementTooShortCode), str); } else if (maxLength >= 0 && data.Length > maxLength) { error = DataTypeHelper.GenerateFieldError(X12ErrorCode.DeDataElementTooLongCode, X12ErrorCode.GetDataElementErrorDescription(X12ErrorCode.DeDataElementTooLongCode), str); } else if ((isTrailingSpace || isLeadingSpace) && minLength >= 0 && data.Length > minLength && false) { error = DataTypeHelper.GenerateFieldError(X12ErrorCode.DeInvalidCharacterInDataElementCode, //X12ErrorCode.X12DataElementLeadingOrTrailingSpaceFoundDescription, X12ErrorCode.GetDataElementErrorDescription(X12ErrorCode.DeInvalidCharacterInDataElementCode), data.ToString()); } else //no min max error { //todo Get this from the environment context CharSet charSet = CharSetFactory.GetCharSetClass(CharSetFactory.ExtendedCharSetIndex); for (int i = 0; i < data.Length; i++) { if (!charSet.IsMember(data[i])) { error = DataTypeHelper.GenerateFieldError(X12ErrorCode.DeInvalidCharacterInDataElementCode, X12ErrorCode.GetDataElementErrorDescription(X12ErrorCode.DeInvalidCharacterInDataElementCode), data.ToString()); break; } } } return(error); }