public RegistryObject(string payload) { if (!string.IsNullOrWhiteSpace(payload)) { dictionary = RegistryServices.JsonToDictionary(payload); if (payload.IndexOf("@graph") > 0 && payload.IndexOf("@graph\": null") == -1) { IsGraphObject = true; //get the graph object object graph = dictionary["@graph"]; //serialize the graph object var glist = JsonConvert.SerializeObject(graph); //parse graph in to list of objects JArray graphList = JArray.Parse(glist); var main = graphList[0].ToString(); BaseObject = JsonConvert.DeserializeObject <RegistryBaseObject>(main); CtdlType = BaseObject.CdtlType; Ctid = BaseObject.Ctid; //not important to fully resolve yet if (BaseObject.Name != null) { Name = BaseObject.Name.ToString(); if (Name.IndexOf("{") > -1 && Name.IndexOf(":") > 1) { int pos = Name.IndexOf("\"", Name.IndexOf(":")); int endpos = Name.IndexOf("\"", pos + 1); if (pos > 1 && endpos > pos) { Name = Name.Substring(pos + 1, endpos - (pos + 1)); } } //if ( BaseObject.Name is LanguageMap ) //{ //} } else if (CtdlType == "ceasn:CompetencyFramework") { Name = (BaseObject.CompetencyFrameworkName ?? "").ToString(); } else { Name = "?????"; } //if ( BaseObject.Name.GetType()) //{ //} } else { //check if old resource or standalone resource BaseObject = JsonConvert.DeserializeObject <RegistryBaseObject>(payload); CtdlType = BaseObject.CdtlType; Ctid = BaseObject.Ctid; Name = BaseObject.Name.ToString(); if (Name.IndexOf("{") > -1 && Name.IndexOf(":") > 1) { int pos = Name.IndexOf("\"", Name.IndexOf(":")); int endpos = Name.IndexOf("\"", pos + 1); if (pos > 1 && endpos > pos) { Name = Name.Substring(pos + 1, endpos - (pos + 1)); } } } CtdlType = CtdlType.Replace("ceterms:", ""); CtdlType = CtdlType.Replace("ceasn:", ""); } }