コード例 #1
0
ファイル: TourListDetail.cs プロジェクト: YeJuneJi/RailoNailo
        /// <summary>
        /// 이미지정보를 Stream 클래스를 이용하여 Image로 변경하고 이미지 리스트에 저장하는 메서드.
        /// </summary>
        /// <param name="detailImage">이미지정보</param>
        private void AddImageList(DetailImage detailImage)
        {
            try
            {
                Uri uri = new Uri(detailImage.Originimgurl);
            }
            catch (UriFormatException)
            {
                detailImage.Originimgurl = "http://api.visitkorea.or.kr/static/images/common/noImage.gif";
            }

            HttpWebRequest  imgRequest  = WebRequest.Create(detailImage.Originimgurl) as HttpWebRequest;
            HttpWebResponse imgResponse = imgRequest.GetResponse() as HttpWebResponse;
            Stream          stream      = imgResponse.GetResponseStream();
            Image           img         = Image.FromStream(stream);

            imgList.Images.Add(detailImage.Serialnum, img);
        }
コード例 #2
0
ファイル: TourListDetail.cs プロジェクト: YeJuneJi/RailoNailo
        private void TourListDetail_Load(object sender, EventArgs e)
        {
            privateFonts = new PrivateFontCollection();
            privateFonts.AddFontFile(Application.StartupPath + "\\Font\\HannaPro.ttf");
            privateFonts.AddFontFile(Application.StartupPath + "\\Font\\Hanna.ttf");
            lblName.Font            = new Font(privateFonts.Families[0], 24f, FontStyle.Bold);
            lblAddr.Font            = lblTel.Font = lblZipcode.Font = label1.Font = label2.Font = label3.Font = label4.Font = new Font(privateFonts.Families[1], 11f, FontStyle.Regular);
            tbxOverView.Font        = new Font(privateFonts.Families[0], 11f, FontStyle.Regular);
            this.BackgroundImage    = Image.FromFile(Application.StartupPath + "\\Images\\FormDetailBack.jpg");
            button7.BackgroundImage = Properties.Resources.close.ToImage();
            this.Text                   = "세부정보";
            imgList.ImageSize           = new Size(256, 256);
            imgList.ColorDepth          = ColorDepth.Depth32Bit;
            plusImageTrackBar.BackColor = Color.FromArgb(255, 247, 248, 250);
            tbxOverView.BackColor       = Color.FromArgb(255, 233, 237, 238);
            string      type = string.Empty;
            DetailImage detailImage;
            string      getjson = finfo.GetJson("detailImage", "&contentId=" + contentID + "&imageYN=Y", 5);
            JObject     jobject = JObject.Parse(getjson);
            JToken      jtokens = jobject.SelectToken("response").SelectToken("body").SelectToken("items").SelectToken("item");

            try
            {
                type = jtokens.Type.ToString();
            }
            catch (NullReferenceException)
            {
                type = "Null";
            }
            if (type == "Array")
            {
                JArray jArray = JArray.Parse(jtokens.ToString());
                foreach (var item in jArray)
                {
                    detailImage = new DetailImage
                    {
                        Serialnum    = item["serialnum"].ToString(),
                        Originimgurl = item["originimgurl"].ToString()
                    };
                    AddImageList(detailImage);
                }
            }
            else if (type == "Object")
            {
                detailImage              = new DetailImage();
                detailImage.Serialnum    = jtokens.SelectToken("serialnum").ToString();
                detailImage.Originimgurl = jtokens.SelectToken("originimgurl").ToString();
                AddImageList(detailImage);
                plusImageTrackBar.Visible = false;
            }
            else
            {
                detailImage              = new DetailImage();
                detailImage.Serialnum    = "NoImage";
                detailImage.Originimgurl = "http://api.visitkorea.or.kr/static/images/common/noImage.gif";
                AddImageList(detailImage);
                plusImageTrackBar.Visible = false;
            }
            pbxPlusImg.Image          = img;
            plusImageTrackBar.Maximum = imgList.Images.Count - 1;


            string  htmlTag  = string.Empty;
            string  homepage = string.Empty;
            string  json     = finfo.GetJson("detailCommon", "&contentId=" + contentID + "&defaultYN=Y&addrinfoYN=Y&overviewYN=Y", 1);
            JObject jobj     = JObject.Parse(json);
            JToken  jtoken   = jobj.SelectToken("response").SelectToken("body").SelectToken("items").SelectToken("item");

            if (jtoken.ToString().Contains("homepage"))
            {
                string html    = jtoken["homepage"].ToString();
                var    htmlDoc = new HtmlAgilityPack.HtmlDocument();
                htmlDoc.LoadHtml(html);
                try
                {
                    htmlTag = htmlDoc.DocumentNode.SelectSingleNode("//a").InnerText;
                }
                catch (NullReferenceException)
                {
                    htmlTag = html;
                }
            }

            detailCommon = new DetailCommon
            {
                Title         = jtoken.ToString().Contains("title") ? jtoken["title"].ToString() : "",
                OverView      = jtoken.ToString().Contains("overview") ? jtoken["overview"].ToString().Replace("<br />", " ").Replace("<br>", "").Replace("\n", "").Replace("<strong>", "").Replace("</strong>", "") : "개요 없음.",
                Addr1         = jtoken.ToString().Contains("addr1") ? jtoken["addr1"].ToString() : "주소 없음.",
                Addr2         = jtoken.ToString().Contains("addr2") ? jtoken["addr2"].ToString() : "",
                Tel           = jtoken.ToString().Contains("tel") && !jtoken.ToString().Contains("telname") ? jtoken["tel"].ToString() : "전화번호 없음.",
                ContentID     = jtoken["contentid"].ToString(),
                ContentTypeID = jtoken["contenttypeid"].ToString(),
                ZipCode       = jtoken.ToString().Contains("zipcode") ? jtoken["zipcode"].ToString() : "우편번호 없음.",
                HomePage      = htmlTag
            };

            lblName.Text         = detailCommon.Title;
            lblAddr.Text         = detailCommon.Addr1 + " " + detailCommon.Addr2;
            lblZipcode.Text      = detailCommon.ZipCode;
            lblTel.Text          = detailCommon.Tel;
            tbxOverView.Text     = detailCommon.OverView;
            linkLblHomePage.Text = detailCommon.HomePage;
            if (string.IsNullOrEmpty(linkLblHomePage.Text))
            {
                linkLblHomePage.Text    = "홈페이지 없음.";
                linkLblHomePage.Enabled = false;
            }
        }