using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Newtonsoft.Json.Schema; using System.Collections.Generic; using System.IO; using System.Net.Http; namespace Knoks.Api.Client { public interface IApiResult { object Result { get; } ApiError Error { get; } } public class ApiResult : IApiResult { public HttpResponseMessage HttpResponse; public string Json; public ApiResponse ApiResponse; public T Object { get { return ApiResponse.Result; } } public object Result { get { return ApiResponse.Result; } } public ApiError Error { get { return ApiResponse.Error; } } public ApiResult(HttpResponseMessage httpResponse, string json) { HttpResponse = httpResponse; Json = json; ApiResponse = JsonConvert.DeserializeObject>(json); } public bool IsValidJson(string schemaFilePath) { IList err; return IsValidJson(schemaFilePath, out err); } public bool IsValidJson(string schemaFilePath, out IList err) { var jSchema = JSchema.Parse(File.ReadAllText(schemaFilePath)); return JsonConvert.DeserializeObject(Json).IsValid(jSchema, out err); } } }