Ejemplo n.º 1
0
    /// <summary>
    /// Constructs a dictionary object (key or entry value) from the specified type and String list.
    /// </summary>
    /// <param name="type">Object type to construct.</param>
    /// <param name="value">Value of the dictionary object as a String list</param>
    /// <param name="service">The service.</param>
    /// <returns>Dictionary object.</returns>
    /* private */ object ConstructObject(
        UserConfigurationDictionaryObjectType type,
        List <string> value,
        ExchangeService service)
    {
        EwsUtilities.Assert(
            value != null,
            "UserConfigurationDictionary.ConstructObject",
            "value is null");
        EwsUtilities.Assert(
            (value.Count == 1 || type == UserConfigurationDictionaryObjectType.StringArray),
            "UserConfigurationDictionary.ConstructObject",
            "value is array but type is not StringArray");

        object dictionaryObject = null;

        switch (type)
        {
        case UserConfigurationDictionaryObjectType.Boolean:
            dictionaryObject = bool.Parse(value[0]);
            break;

        case UserConfigurationDictionaryObjectType.Byte:
            dictionaryObject = byte.Parse(value[0]);
            break;

        case UserConfigurationDictionaryObjectType.ByteArray:
            dictionaryObject = Convert.FromBase64String(value[0]);
            break;

        case UserConfigurationDictionaryObjectType.DateTime:
            DateTime?dateTime = service.ConvertUniversalDateTimeStringToLocalDateTime(value[0]);

            if (dateTime.HasValue)
            {
                dictionaryObject = dateTime.Value;
            }
            else
            {
                EwsUtilities.Assert(
                    false,
                    "UserConfigurationDictionary.ConstructObject",
                    "DateTime is null");
            }

            break;

        case UserConfigurationDictionaryObjectType.Integer32:
            dictionaryObject = int.Parse(value[0]);
            break;

        case UserConfigurationDictionaryObjectType.Integer64:
            dictionaryObject = long.Parse(value[0]);
            break;

        case UserConfigurationDictionaryObjectType.String:
            dictionaryObject = value[0];
            break;

        case UserConfigurationDictionaryObjectType.StringArray:
            dictionaryObject = value.ToArray();
            break;

        case UserConfigurationDictionaryObjectType.UnsignedInteger32:
            dictionaryObject = uint.Parse(value[0]);
            break;

        case UserConfigurationDictionaryObjectType.UnsignedInteger64:
            dictionaryObject = ulong.Parse(value[0]);
            break;

        default:
            EwsUtilities.Assert(
                false,
                "UserConfigurationDictionary.ConstructObject",
                "Type not recognized: " + type.ToString());
            break;
        }

        return(dictionaryObject);
    }
        /// <summary>
        /// Constructs a dictionary object (key or entry value) from the specified type and string list.
        /// </summary>
        /// <param name="type">Object type to construct.</param>
        /// <param name="value">Value of the dictionary object as a string list</param>
        /// <param name="service">The service.</param>
        /// <returns>Dictionary object.</returns>
        private object ConstructObject(
            UserConfigurationDictionaryObjectType type, 
            List<string> value, 
            ExchangeService service)
        {
            EwsUtilities.Assert(
                value != null,
                "UserConfigurationDictionary.ConstructObject",
                "value is null");
            EwsUtilities.Assert(
                (value.Count == 1 || type == UserConfigurationDictionaryObjectType.StringArray),
                "UserConfigurationDictionary.ConstructObject",
                "value is array but type is not StringArray");

            object dictionaryObject = null;

            switch (type)
            {
                case UserConfigurationDictionaryObjectType.Boolean:
                    dictionaryObject = bool.Parse(value[0]);
                    break;

                case UserConfigurationDictionaryObjectType.Byte:
                    dictionaryObject = byte.Parse(value[0]);
                    break;

                case UserConfigurationDictionaryObjectType.ByteArray:
                    dictionaryObject = Convert.FromBase64String(value[0]);
                    break;

                case UserConfigurationDictionaryObjectType.DateTime:
                    DateTime? dateTime = service.ConvertUniversalDateTimeStringToLocalDateTime(value[0]);

                    if (dateTime.HasValue)
                    {
                        dictionaryObject = dateTime.Value;
                    }
                    else
                    {
                        EwsUtilities.Assert(
                            false,
                            "UserConfigurationDictionary.ConstructObject",
                            "DateTime is null");
                    }

                    break;

                case UserConfigurationDictionaryObjectType.Integer32:
                    dictionaryObject = int.Parse(value[0]);
                    break;

                case UserConfigurationDictionaryObjectType.Integer64:
                    dictionaryObject = long.Parse(value[0]);
                    break;

                case UserConfigurationDictionaryObjectType.String:
                    dictionaryObject = value[0];
                    break;

                case UserConfigurationDictionaryObjectType.StringArray:
                    dictionaryObject = value.ToArray();
                    break;

                case UserConfigurationDictionaryObjectType.UnsignedInteger32:
                    dictionaryObject = uint.Parse(value[0]);
                    break;

                case UserConfigurationDictionaryObjectType.UnsignedInteger64:
                    dictionaryObject = ulong.Parse(value[0]);
                    break;

                default:
                    EwsUtilities.Assert(
                        false,
                        "UserConfigurationDictionary.ConstructObject",
                        "Type not recognized: " + type.ToString());
                    break;
            }

            return dictionaryObject;
        }