Exemplo n.º 1
0
 public static ValueProcessorItem JsonDataModelProcessor(
     this ValueProcessorItem valueItem, CancellationToken?_)
 {
     if (valueItem.IsValid("json") == false)
     {
         return(valueItem);
     }
     valueItem.Value ??= valueItem.Item.RawValue;
     try
     {
         valueItem.Data = valueItem.Value.ParseJson();
         return(valueItem);
     }
     catch (Exception ex)
     {
         throw new FormatException($"Invalid JSON Format for tag {valueItem.Item.FullName}: "
                                   + ex.Message);
     }
 }
Exemplo n.º 2
0
 public static ValueProcessorItem XmlDataModelProcessor(
     this ValueProcessorItem valueItem, CancellationToken?_)
 {
     if (valueItem.IsValid("xml") == false)
     {
         return(valueItem);
     }
     valueItem.Value ??= valueItem.Item.RawValue;
     try
     {
         valueItem.Data = valueItem.Value.ParseXml(
             bool.Parse(valueItem.Item.Attributes?["root_element"] ?? "false")
             );
         return(valueItem);
     }
     catch (Exception ex)
     {
         throw new FormatException($"Invalid XML Format for tag {valueItem.Item.FullName}: "
                                   + ex.Message);
     }
 }
Exemplo n.º 3
0
 public static ValueProcessorItem UriProcessor(this ValueProcessorItem valueItem, CancellationToken?token = null)
 {
     if (valueItem.IsValid("uri") == false)
     {
         return(valueItem);
     }
     valueItem.Value ??= valueItem.Item.RawValue;
     if (!Uri.IsWellFormedUriString(valueItem.Value, UriKind.Absolute))
     {
         throw new FormatException(
                   $"Invalid uri format for {valueItem.Item.Name}: {valueItem.Value}");
     }
     if ((valueItem.Value = new Uri(valueItem.Value)
                            .GetContentAsync(token,
                                             valueItem.Item.Attributes?["uri_referer"], valueItem.Item.Attributes?["uri_user_agent"])
                            .GetAwaiter().GetResult()) == null)
     {
         throw new TimeoutException(
                   $"Uri settings retrieval timed-out for {valueItem.Item.Name}: {valueItem.Value}");
     }
     return(valueItem);
 }