Example #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="udfValue"></param>
        /// <param name="newValue"></param>
        /// <returns></returns>
        public static bool SetUdf(UDFValue udfValue, string newValue)
        {
            if (udfValue.TypedValueAttribute is StringAttribute)
            {
                logger.Trace("SetUdf: StringAttribute");
                ((StringAttribute)udfValue.TypedValueAttribute).Value = newValue;
            }
            else if (udfValue.TypedValueAttribute is BoolAttribute)
            {
                logger.Trace("SetUdf: BoolAttribute");
                BoolAttribute boolValue = (BoolAttribute)udfValue.TypedValueAttribute;
                if (string.IsNullOrEmpty(newValue) == false)
                {
                    switch (newValue.ToUpperInvariant())
                    {
                    case "TRUE":
                    case "1":
                        boolValue.Value = true;
                        break;

                    case "FALSE":
                    case "0":
                        boolValue.Value = false;
                        break;

                    default:
                        logger.Error("SetUdf: Invalid boolean value {0} for UDF {1}.", newValue, udfValue.Field.Description);
                        return(false);
                    }
                }
            }
            else if (udfValue.TypedValueAttribute is EntityAttribute)
            {
                logger.Trace("SetUdf: EntityAttribute");
                EntityAttribute entityValue = (EntityAttribute)udfValue.TypedValueAttribute;
                if (entityValue.FromString(newValue) == false)
                {
                    logger.Error("SetUdf: Invalid lookup value {0} for UDF {1}.", newValue, udfValue.Field.Description);
                    return(false);
                }
            }
            else
            {
                logger.Error("SetUdf: Unsupported UDF type {0} for UDF {1}.", udfValue.TypedValueAttribute, udfValue.Field.Description);
                return(false);
            }

            return(true);
        }