public ProfileData(string name, bool isClosed, bool deactivated, ProfileCounters counters, string birthday, string sex, string city, Bitmap avatar, string status, bool isFriend) { Name = name; Counters = counters; Birthday = birthday; Sex = sex; City = city; Avatar = avatar; Status = status; IsClosed = isClosed; Deactiavated = deactivated; IsFriend = isFriend; }
public ProfileData GetProfileData(string id) { var request = BuildRequest(id, new string[] { "counters", "bdate", "sex", "city", "photo_200", "status", "is_friend" }); ProfileData result; JObject response; Bitmap photo; using (var wc = new WebClient()) { wc.Encoding = Encoding.UTF8; response = JObject.Parse(wc.DownloadString(request)); if (response.ContainsKey("error") || !(response["response"] as JArray).HasValues) { wc.Dispose(); return(null); } else { photo = new Bitmap(wc.OpenRead(response["response"][0]["photo_200"].ToString())); } } if (response.ContainsKey("error") || !(response["response"] as JArray).HasValues) { return(null); } var pData = response["response"][0] as JObject; var deactivated = pData.ContainsKey("deactivated"); bool isClosed; if (pData.ContainsKey("is_closed")) { isClosed = pData["is_closed"].ToString() == "True"; } else { isClosed = false; } bool isFriend; if (pData.ContainsKey("is_friend")) { isFriend = pData["is_friend"].ToString() == "1"; } else { isFriend = false; } var name = pData["first_name"].ToString() + " " + pData["last_name"].ToString(); string birthday; if (pData.ContainsKey("bdate")) { birthday = "День рождения: " + pData["bdate"].ToString(); } else { birthday = "День рождения не указан"; } string sex; switch (pData["sex"].ToString()) { case "1": sex = "Пол: женский"; break; case "2": sex = "Пол: мужской"; break; default: sex = "Пол не указан"; break; } string city; if (pData.ContainsKey("city")) { city = "Город: " + pData["city"]["title"]; } else { city = "Город не указан"; } string status; if (pData.ContainsKey("status")) { status = pData["status"].ToString() != "" ? "Статус: \"" + pData["status"].ToString() + "\"" : "Статус не указан"; } else { status = "Статус не указан"; } var pc = pData["counters"]; var counters = new ProfileCounters ( pc != null && pc["friends"] != null ? pc["friends"].ToString() : "-", pc != null && pc["followers"] != null ? pc["followers"].ToString() : "-", pc != null && pc["photos"] != null ? pc["photos"].ToString() : "-", pc != null && pc["videos"] != null ? pc["videos"].ToString() : "-", pc != null && pc["audios"] != null ? pc["audios"].ToString() : "-" ); result = new ProfileData(name, isClosed, deactivated, counters, birthday, sex, city, photo, status, isFriend); return(result); }