private bool IsCorrectValue()

in FixAntenna/NetCore/Validation/Validators/FieldsDefinitionsTypeValidator.cs [215:281]


		private bool IsCorrectValue(TagValue tagValue, Fielddef fielddef)
		{
			//fixed bug 14817: Message which Contains tag with only spaces was not rejected
			IList<Item> items = fielddef.Item;
			var range = fielddef.Range;
			var valblock = fielddef.Valblock;
			var stringValue = tagValue.StringValue;
			var multi = fielddef.Multi;
			var isCorrect = false;
			// check null of all rules
			if ((items == null || items.Count == 0) && range == null && valblock == null && multi == null)
			{
				isCorrect = true;
			}
			else
			{
				if (items != null && items.Count > 0)
				{
					// check items values
					isCorrect = CheckItems(items, stringValue);
				}

				// compare multi values
				if (!isCorrect && multi != null && multi.Item.Count > 0)
				{
					isCorrect = CheckMulti(multi, stringValue);
				}

				// compare range
				if (range != null && !isCorrect)
				{
					isCorrect = CheckRange(tagValue, range);
				}

				if (valblock != null)
				{
					// check valblock
					var valblockdef = Util.GetValblockdef(valblock.GetIdref());
					IList list = valblockdef.ItemOrRangeOrDescr;
					foreach (var o in list)
					{
						if (o is Item)
						{
							var item = (Item)o;
							if (item.Val.Equals(stringValue))
							{
								isCorrect = true;
								break;
							}
						}

						if (o is Range rng && !isCorrect)
						{
							isCorrect = CheckRange(tagValue, rng);
						}

						if (o is Multi valBlockMulti && !isCorrect)
						{
							// fixed 15091 : Correct value of MultipleCharValue considered as incorrect data type
							isCorrect = CheckMulti(valBlockMulti, stringValue);
						}
					}
				}
			}

			return isCorrect;
		}