/// <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)); } }
/// <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); } }