Пример #1
0
        internal static BuildJobResult From(IJsonResponseProvider response, Dictionary <int, IOutputDestination> outputs)
        {
            var v = response.DeserializeDynamic();

            if (v == null || v.success == null)
            {
                throw new ImageflowAssertionFailed("BuildJobResult.From cannot parse response " + response.GetString());
            }

            if (!(bool)v.success.Value)
            {
                throw new ImageflowAssertionFailed("BuildJobResult.From cannot convert a failure");
            }

            IEnumerable <dynamic> encodes = (v.data.job_result ?? v.data.build_result).encodes;

            var encodeResults = encodes.Select(er => new BuildEncodeResult
            {
                Width              = er.w,
                Height             = er.h,
                IoId               = er.io_id,
                PreferredExtension = er.preferred_extension,
                PreferredMimeType  = er.preferred_mime_type,
                Destination        = outputs[(int)er.io_id.Value]
            }).OrderBy(er => er.IoId).ToList();

            var dict = encodeResults.ToDictionary(r => r.IoId);

            // There may be fewer reported outputs than registered ones - encoding is conditional on input, I think
            return(new BuildJobResult {
                EncodeResults = encodeResults, _results = dict
            });
        }
Пример #2
0
 public static string GetString(this IJsonResponseProvider p)
 {
     using (var s = new StreamReader(p.GetStream(), Encoding.UTF8))
         return(s.ReadToEnd());
 }
Пример #3
0
 public static T Deserialize <T>(this IJsonResponseProvider p) where T : class
 {
     using (var reader = new StreamReader(p.GetStream(), Encoding.UTF8))
         return(JsonSerializer.Create().Deserialize(new JsonTextReader(reader), typeof(T)) as T);
 }
Пример #4
0
 public static dynamic DeserializeDynamic(this IJsonResponseProvider p)
 {
     using (var reader = new StreamReader(p.GetStream(), Encoding.UTF8))
         return(JsonSerializer.Create().Deserialize(new JsonTextReader(reader)));
 }
Пример #5
0
 public static string GetString(this IJsonResponseProvider p) => new StreamReader(p.GetStream(), Encoding.UTF8).ReadToEnd();