public static T MapFromJson(string json, string parentToken = null, SpaceResponse spaceResponse = null)
        {
            var jsonToParse = string.IsNullOrEmpty(parentToken) ? json : JObject.Parse(json).SelectToken(parentToken).ToString();

            var result = JsonConvert.DeserializeObject <T>(jsonToParse);

            applyResponse(json, spaceResponse, result);


            return(result);
        }
        private static void applyResponse(string json, SpaceResponse spaceResponse, object obj)
        {
            if (spaceResponse == null)
            {
                return;
            }

            foreach (var property in obj.GetType().GetRuntimeProperties())
            {
                if (property.Name == nameof(SpaceResponse))
                {
                    property.SetValue(obj, spaceResponse);
                }
            }

            spaceResponse.ObjectJson = json;
        }
 public static T MapFromJson(SpaceResponse spaceResponse, string parentToken = null)
 {
     return(MapFromJson(spaceResponse.ResponseJson, parentToken, spaceResponse));
 }
 public static List <T> MapCollectionFromJson(SpaceResponse spaceResponse)
 {
     return(MapCollectionFromJson(spaceResponse.ResponseJson, spaceResponse));
 }
        public static List <T> MapCollectionFromJson(string json, SpaceResponse spaceResponse = null)
        {
            var jArray = JArray.Parse(json);

            return(jArray.Select(tkn => MapFromJson(tkn.ToString(), null, spaceResponse)).ToList());
        }