public static FacesRec JsonToFacesRec(string txt) { try { var jFacesRec = JObject.Parse(txt); var rec = new FacesRec(); rec.primary_gender = StringToGender((string)jFacesRec["primary_gender"]); rec.majority_gender = StringToGender((string)jFacesRec["majority_gender"]); rec.faces = new List <FaceRec>(); foreach (var jfaces in jFacesRec["objects"]) { var face = new FaceRec(); face.id = StringToInt((string)jfaces["id"]); face.age = (int)StringToFloat((string)jfaces["age"]); face.gender = StringToGender((string)jfaces["gender"]); rec.faces.Add(face); } return(rec); } catch (Exception ex) { var newEx = new Exception("Invalid JSON data format returned for 'State'.", ex); throw newEx; } }
public HttpStatusCode GetFacesNow(out FacesRec faces) { ValidateIsBound(); var client = new LookRestClient(_device, _port, _username, _password); string body = null; var responseCode = client.GetFaces(out body); Trace.TraceInformation("\nRaw JSON data: {0}", body); if (responseCode == HttpStatusCode.OK) { faces = JsonHelper.JsonToFacesRec(body); } else { faces = null; } return(responseCode); }
public bool GetMostRelevantUserInfo(out int age, out Gender gender) { ValidateIsBound(); age = 0; gender = Gender.Unknown; var client = new LookRestClient(_device, _port, _username, _password); string body = null; var responseCode = client.GetFaces(out body); Trace.TraceInformation("\nRaw JSON data: {0}", body); FacesRec rec = JsonHelper.JsonToFacesRec(body); if (rec.faces.Count < 1) { return(false); } FaceRec primaryFace = null; foreach (var item in rec.faces) { if (primaryFace == null) { primaryFace = item; continue; } if (item.id < primaryFace.id) { primaryFace = item; } } age = primaryFace.age; gender = primaryFace.gender; return(responseCode == System.Net.HttpStatusCode.OK); }