/// <summary> /// Set person /// </summary> /// <param name="person">Instance of Person </param> private void SetPerson(Person person) { // retrieve profile data linkedin dynamic data = RetrieveProfileData(); JObject jObj = JObject.Parse(data); // set data of instance of Person person.Id = (string)jObj.OfType<JProperty>().Where(p => p.Name == "id").First().Value; person.FirstName = (string)jObj.OfType<JProperty>().Where(p => p.Name == "firstName").First().Value; // set data of instance of Education IEnumerable<JToken> educations = jObj.OfType<JProperty>().Where(p => p.Name == "educations").Descendants(); foreach (JToken jToken in educations.OfType<JProperty>().Where(p => p.Name == "values").Children().First().Children()) { JEnumerable<JToken> values = jToken.Children(); Education education = new Education(); education.Id = int.Parse(values.OfType<JProperty>().Where(p => p.Name == "id").First().Value.ToString()); education.SchoolName = values.OfType<JProperty>().Where(p => p.Name == "schoolName").First().Value.ToString(); education.Degree = values.OfType<JProperty>().Where(p => p.Name == "degree").First().Value.ToString(); education.StartDate = values.OfType<JProperty>().Where(p => p.Name == "startDate").Any() ? new DateTime(int.Parse(values.OfType<JProperty>().Where(p => p.Name == "startDate").First().Descendants().OfType<JProperty>().Where(p => p.Name == "year").First().Value.ToString()), 1, 1, 0, 0, 0) : DateTime.MinValue; education.EndDate = values.OfType<JProperty>().Where(p => p.Name == "endDate").Any() ? new DateTime(int.Parse(values.OfType<JProperty>().Where(p => p.Name == "endDate").First().Descendants().OfType<JProperty>().Where(p => p.Name == "year").First().Value.ToString()), 1, 1, 0, 0, 0) : DateTime.MinValue; person.Educations.Add(education); } // set data of instance of Skill IEnumerable<JToken> skills = jObj.OfType<JProperty>().Where(p => p.Name == "skills").Descendants(); foreach (JToken jToken in skills.OfType<JProperty>().Where(p => p.Name == "values").Children().First().Children()) { JEnumerable<JToken> values = jToken.Children(); Skill skill = new Skill(); skill.Id = int.Parse(values.OfType<JProperty>().Where(p => p.Name == "id").First().Value.ToString()); skill.Name = values.OfType<JProperty>().Where(p => p.Name == "skill").First().Descendants().OfType<JProperty>().Where(p => p.Name == "name").First().Value.ToString(); person.Skills.Add(skill); } }
public LinkedInModels() { Person = new Person(); SetPerson(Person); }