public static OSVRConfig Read(string filePath, string serverRoot) { var ret = new OSVRConfig(); var includes = new List <OSVRInclude>(); ret.Includes = includes; using (var configReader = File.OpenText(filePath)) using (var jr = new JsonTextReader(configReader)) { JToken token = JObject.ReadFrom(jr); if (!(token is JObject)) { return(null); } ret.Body = (JObject)token; // Display var displayInclude = OSVRInclude.Parse(ret.Body, "display", serverRoot); if (displayInclude != null) { includes.Add(displayInclude); } // RenderManager var renderManagerInclude = OSVRInclude.Parse(ret.Body, "renderManagerConfig", serverRoot); if (renderManagerInclude != null) { includes.Add(renderManagerInclude); } } return(ret); }
public static OSVRInclude Parse(JObject json, string fieldName, string serverRoot) { OSVRInclude ret = null; JToken token = null; if (json.TryGetValue(fieldName, out token) && token.Type == JTokenType.String) { string relativePath = token.Value <string>(); ret = new OSVRInclude(); ret.RelativePath = relativePath; try { using (var includeReader = File.OpenText(Path.Combine(serverRoot, relativePath))) { ret.Body = (JObject)JObject.ReadFrom(new JsonTextReader(includeReader)); } } catch (System.IO.FileNotFoundException) { ret = null; } } return(ret); }