using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Nancy; using Newtonsoft.Json; namespace FilterLauncher.LauncherNetworking { class LoginResp : JsonResponse { public override HttpStatusCode StatusCode { get; set; } public override String Response { get; set; } public String Token { get; set; } } class InfoResponse : JsonResponse { public override HttpStatusCode StatusCode { get; set; } public override String Response { get; set; } public String Info { get; set; } } class GenericResponse : JsonResponse { public override HttpStatusCode StatusCode { get; set; } public override String Response { get; set; } } abstract class JsonResponse { public abstract HttpStatusCode StatusCode { get; set; } public abstract String Response { get; set; } public static Response GetNancyResp(JsonResponse jsonResp) { var jsonBytes = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(jsonResp)); return new Response { StatusCode = jsonResp.StatusCode, ContentType = "application/json", Contents = s => s.Write(jsonBytes, 0, jsonBytes.Length) }; } } }