Exemplo n.º 1
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            var jObject = JObject.Load(reader);

            // Don't require type property on AdaptiveBlockContent
            if (objectType == typeof(AdaptiveBlockContent))
            {
                var result = new AdaptiveBlockContent();
                serializer.Populate(jObject.CreateReader(), result);

                HandleAdditionalProperties(result);
                return(result);
            }

            var typeName = jObject["type"]?.Value <string>() ?? jObject["@type"]?.Value <string>();

            if (typeName == null)
            {
                throw new Exception("Required property 'type' not found on adaptive card element");
            }

            if (TypedElementTypes.Value.TryGetValue(typeName, out var type))
            {
                var result = (BaseAdaptiveBlockElement)Activator.CreateInstance(type);
                serializer.Populate(jObject.CreateReader(), result);

                HandleAdditionalProperties(result);
                return(result);
            }

            //Warnings.Add(new AdaptiveWarning(-1, $"Unknown element '{typeName}'"));
            return(null);
        }
Exemplo n.º 2
0
 public AdaptiveBlock(AdaptiveBlockContent content)
 {
     ViewReference = new AdaptiveBlockEmbeddedReference <AdaptiveBlockView>()
     {
         Value = new AdaptiveBlockView()
         {
             Content = content
         }
     };
 }