public ChakadMessagePropertyConfig(ChakadFieldType fieldType,
                                    T value,
                                    string label    = "",
                                    bool isRequired = false)
 {
     LabelTitle = label;
     Value      = value;
     FieldType  = fieldType;
     IsRequired = isRequired;
 }
        public static bool Against(ChakadFieldType fieldType, object value)
        {
            lock (Obj)
            {
                switch (fieldType)
                {
                case ChakadFieldType.Number:
                    _guardAgainst = AgainstNumber;
                    break;

                case ChakadFieldType.DefaultNumber:
                    _guardAgainst = AgainstDefaultNumber;
                    break;

                case ChakadFieldType.String:
                    _guardAgainst = AgainstString;
                    break;

                case ChakadFieldType.Date:
                    _guardAgainst = AgainstDate;
                    break;

                case ChakadFieldType.Char:
                    _guardAgainst = AgainstCahr;
                    break;

                case ChakadFieldType.Boolean:
                    _guardAgainst = AgainstBoolean;
                    break;

                case ChakadFieldType.Object:
                    break;

                default:
                    throw new ArgumentOutOfRangeException(nameof(fieldType), fieldType, null);
                }
                return(_guardAgainst != null && _guardAgainst(value));
            }
        }