コード例 #1
0
        /// <summary>
        /// Fields the context for.
        /// </summary>
        /// <param name="fieldConfig">
        /// The field configuration.
        /// </param>
        /// <param name="fieldIdentifier">
        /// The field identifier.
        /// </param>
        /// <param name="value">
        /// The value.
        /// </param>
        /// <param name="childFields">
        /// The child fields.
        /// </param>
        /// <returns>
        /// The <see cref="UPEditFieldContext"/>.
        /// </returns>
        public static UPEditFieldContext FieldContextFor(
            UPConfigFieldControlField fieldConfig,
            IIdentifier fieldIdentifier,
            string value,
            List <UPEditFieldContext> childFields)
        {
            var fieldType = fieldConfig?.Field?.FieldType;

            if (string.IsNullOrEmpty(fieldType))
            {
                return(null);
            }

            var gps = fieldConfig.Attributes?.ExtendedOptionForKey("GPS");

            if (!string.IsNullOrEmpty(gps))
            {
                return(new UPGpsEditFieldContext(fieldConfig, fieldIdentifier, value, childFields));
            }

            switch (fieldType[0])
            {
            case 'X':
                return(new UPFixedCatalogEditFieldContext(fieldConfig, fieldIdentifier, value, childFields));

            case 'K':
                return(new UPVariableCatalogEditFieldContext(fieldConfig, fieldIdentifier, value, childFields));

            case 'D':
                return(new UPDateEditFieldContext(fieldConfig, fieldIdentifier, value, childFields));

            case 'T':
                return(new UPTimeEditFieldContext(fieldConfig, fieldIdentifier, value, childFields));

            case 'B':
                return(new UPBooleanEditFieldContext(fieldConfig, fieldIdentifier, value, childFields));

            case 'N':
            case 'L':
            case 'S':
            case 'F':
                if (fieldType[0] == 'L' && fieldConfig.Field.IsRepField)
                {
                    var repId = UPCRMReps.FormattedRepId(value);
                    return(new UPRepEditFieldContext(fieldConfig, fieldIdentifier, repId, childFields));
                }
                else
                {
                    return(new UPNumberEditFieldContext(fieldConfig, fieldIdentifier, value, childFields));
                }

            case 'Z':
            {
                return(new UPEditFieldContext(fieldConfig, fieldIdentifier, value, childFields));
            }

            default:
                return(new UPEditFieldContext(fieldConfig, fieldIdentifier, value, childFields));
            }
        }
コード例 #2
0
 /// <summary>
 /// Sets the value.
 /// </summary>
 /// <param name="value">
 /// The value.
 /// </param>
 public override void SetValue(string value)
 {
     if (value?.Length > 0 && value.Length != 9)
     {
         base.SetValue(UPCRMReps.FormattedRepId(value));
     }
     else
     {
         base.SetValue(value);
     }
 }