Sha256: bdc1382c76883c7b7221b754db7f661f889ff60d42e7889da29c5170e2689b00

Contents?: true

Size: 1011 Bytes

Versions: 5

Compression:

Stored size: 1011 Bytes

Contents

using System;
using System.ComponentModel.DataAnnotations;
using System.Net.Http;
using Newtonsoft.Json;

namespace Generators.Input
{
    public static class CanonicalDataParser
    {
        private static readonly HttpClient HttpClient = new HttpClient();

        public static CanonicalData Parse(string exercise)
        {
            var canonicalDataJson = DownloadCanonicalDataJson(exercise);
            var canonicalData = JsonConvert.DeserializeObject<CanonicalData>(canonicalDataJson);

            Validator.ValidateObject(canonicalData, new ValidationContext(canonicalData));

            return canonicalData;
        }

        private static string DownloadCanonicalDataJson(string exercise)
            => HttpClient.GetStringAsync(GetCanonicalDataUrl(exercise)).GetAwaiter().GetResult();

        private static Uri GetCanonicalDataUrl(string exercise)
            => new Uri($"https://raw.githubusercontent.com/exercism/x-common/master/exercises/{exercise}/canonical-data.json");
    }
}

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
trackler-2.1.0.53 tracks/csharp/generators/Input/CanonicalDataParser.cs
trackler-2.1.0.52 tracks/csharp/generators/Input/CanonicalDataParser.cs
trackler-2.1.0.51 tracks/csharp/generators/Input/CanonicalDataParser.cs
trackler-2.1.0.50 tracks/csharp/generators/Input/CanonicalDataParser.cs
trackler-2.1.0.49 tracks/csharp/generators/Input/CanonicalDataParser.cs