/// <summary> /// Handle where an input object could be a string or a list of strings, and output must be a list of strings /// </summary> /// <param name="input"></param> /// <returns></returns> public static string AssignObjectToString(object input) { if (input == null) { return(null); } if (input.GetType() == typeof(Newtonsoft.Json.Linq.JArray)) { var list = input as Newtonsoft.Json.Linq.JArray; if (list != null && list.Count() > 0) { return(list[0].ToString()); } } else if (input.GetType() == typeof(System.String)) { return(input.ToString()); } else if (input.GetType() == typeof(Newtonsoft.Json.Linq.JObject) && input.ToString().IndexOf("en-US") > -1) { Dictionary <string, object> dictionary = RegistryServices.JsonToDictionary(input.ToString()); var output = dictionary["en-US"].ToString(); return(output); } else { //unexpected/unhandled } //- input.GetType() {Name = "JObject" FullName = "Newtonsoft.Json.Linq.JObject"} System.Type {System.RuntimeType} return(null); }
public RegistryObject(string payload) { if (!string.IsNullOrWhiteSpace(payload) && (payload.IndexOf("errors") == -1 || payload.IndexOf("errors") > 50)) { 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; var n = RegistryServices.AssignObjectToString(BaseObject.Name); //not important to fully resolve yet if (BaseObject.Name != null) { Name = BaseObject.Name.ToString(); } else if (CtdlType == "ceasn:CompetencyFramework") { //var n = JsonConvert.DeserializeObject<LanguageMap>( BaseObject.CompetencyFrameworkName.ToString() ); Name = (BaseObject.CompetencyFrameworkName ?? "").ToString(); } else { Name = "?????"; } } else { //check if old resource or standalone resource BaseObject = JsonConvert.DeserializeObject <RegistryBaseObject>(payload); CtdlType = BaseObject.CdtlType; Ctid = BaseObject.Ctid; if (BaseObject.Name != null) { Name = BaseObject.Name.ToString(); } else { Name = "no name property for this document"; } } if ((Name ?? "").IndexOf("{") == 0) { var n = JsonConvert.DeserializeObject <LanguageMap>(Name); Name = n.ToString(); //Name = n.; } CtdlType = CtdlType.Replace("ceterms:", ""); CtdlType = CtdlType.Replace("ceasn:", ""); } }