Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        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:", "");
            }
        }