public static RaiserInfo GetValueFromJson(TextReader jsonStream, string language) { RaiserInfo result = null; using (Newtonsoft.Json.JsonTextReader jtr = new Newtonsoft.Json.JsonTextReader(jsonStream)) { bool? enable = true; int? count = 0; string md5 = string.Empty, url = string.Empty, tmp; while (jtr.Read()) { if (jtr.TokenType == Newtonsoft.Json.JsonToken.PropertyName) { if (((string)jtr.Value).ToLower() == language.ToLower()) { while (jtr.Read()) { if (jtr.TokenType == Newtonsoft.Json.JsonToken.PropertyName) { tmp = ((string)jtr.Value).ToLower(); if (tmp == "enabled") { enable = jtr.ReadAsBoolean(); } else if (tmp == "filecount") { count = jtr.ReadAsInt32(); } else if (tmp == "patchmd5") { md5 = jtr.ReadAsString(); } else if (tmp == "patchurl") { url = jtr.ReadAsString(); } else { jtr.Skip(); } } } } else { jtr.Skip(); } } } if (enable.HasValue && !enable.Value) { result = new RaiserInfo(false, count.HasValue ? count.Value : 0, md5, url); } else { result = new RaiserInfo(true, count.HasValue ? count.Value : 0, md5, url); } } return(result); }