/// <summary> /// Create a PsObject from Dictionary of string, object pairs. /// </summary> /// <param name="dict">Key-value pairs of data.</param> /// <returns>PsObject containing values from Dictionary.</returns> public static PsObject Create(Dictionary <string, object> dict) { PsObject psobj = new PsObject(); foreach (KeyValuePair <string, object> item in dict) { string key = item.Key; Dictionary <string, object> value = (Dictionary <string, object>)item.Value; int type = (int)value["t"]; switch (type) { case (int)Constants.PsType.Boolean: psobj.SetBoolean(key, Convert.ToBoolean(value["v"])); break; case (int)Constants.PsType.String: psobj.SetString(key, Convert.ToString(value["v"])); break; case (int)Constants.PsType.Integer: psobj.SetInt(key, Convert.ToInt32(value["v"])); break; case (int)Constants.PsType.Long: psobj.SetLong(key, Convert.ToInt64(value["v"])); break; case (int)Constants.PsType.Float: psobj.SetFloat(key, Convert.ToSingle(value["v"])); break; case (int)Constants.PsType.PSObject: psobj.SetPsObject(key, PsObject.Create((Dictionary <string, object>)value["v"])); break; case (int)Constants.PsType.PSArray: psobj.SetPsArray(key, PsArray.Create((object[])value["v"])); break; case (int)Constants.PsType.Number: psobj.SetFloat(key, Convert.ToSingle(value["v"])); break; } } return(psobj); }
/// <summary> /// Create an PsArray from an array of objects. /// </summary> /// <param name="obj">Array of objects.</param> /// <returns></returns> public static PsArray Create(object[] obj) { PsArray psa = new PsArray(); foreach (object o in obj) { Dictionary <string, object> dict = (Dictionary <string, object>)o; int type = (int)dict["t"]; switch (type) { case (int)Constants.PsType.Boolean: psa.AddBoolean(Convert.ToBoolean(dict["v"])); break; case (int)Constants.PsType.String: psa.AddString(Convert.ToString(dict["v"])); break; case (int)Constants.PsType.Integer: psa.AddInt(Convert.ToInt32(dict["v"])); break; case (int)Constants.PsType.Long: psa.AddLong(Convert.ToInt64(dict["v"])); break; case (int)Constants.PsType.Float: psa.AddFloat(Convert.ToSingle(dict["v"])); break; case (int)Constants.PsType.PSObject: psa.AddPsObject(PsObject.Create((Dictionary <string, object>)dict["v"])); break; case (int)Constants.PsType.PSArray: psa.AddPsArray(PsArray.Create((object[])dict["v"])); break; case (int)Constants.PsType.Number: psa.AddNumber(Convert.ToSingle(dict["v"])); break; } } return(psa); }