コード例 #1
0
        private Capability CreateCapability(CapabilitiyTypes cabType)
        {
            Capability s = null;

            switch (cabType)
            {
            case CapabilitiyTypes.AlexaInterface:
                s = new AlexaInterface();
                break;

            default:
                throw new IndexOutOfRangeException("Unknown CapabilitiyTypes");
            }
            return(s);
        }
コード例 #2
0
        /// <summary>
        /// Reads Json in a Objekt und creates a Property
        /// </summary>
        /// <param name="reader"></param>
        /// <param name="objectType"></param>
        /// <param name="existingValue"></param>
        /// <param name="serializer"></param>
        /// <returns></returns>
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            var        jObject = JObject.Load(reader);
            string     type    = jObject["type"]?.Value <string>();
            Capability cab     = null;

            if (!String.IsNullOrEmpty(type))
            {
                CapabilitiyTypes cabType = (CapabilitiyTypes)Enum.Parse(typeof(CapabilitiyTypes), type);
                cab = CreateCapability(cabType);
                serializer.Populate(jObject.CreateReader(), cab);
            }
            else
            {
                throw new InvalidOperationException("Empty grantee type.");
            }


            return(cab);
        }