Example #1
0
 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;
 }
Example #2
0
        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);
        }