private void ProcSearchNaverApi(string movieName)
        {
            string clientID     = "akHdB2C596X3kc2uTcdC";
            string clientSecret = "3OwTo6_yjp";
            string openApiUrl   = $"https://openapi.naver.com/v1/search/movie?start=1&display=30&query={movieName}";

            string resJson    = Commons.GetOpenApiResult(openApiUrl, clientID, clientSecret);
            var    parsedJson = JObject.Parse(resJson);

            int total   = Convert.ToInt32(parsedJson["total"]);
            int display = Convert.ToInt32(parsedJson["display"]);

            StsResult.Content = $"{total} 중 {display} 호출 성공!";

            var items      = parsedJson["items"];
            var json_array = (JArray)items;

            List <MovieItem> movieItems = new List <MovieItem>();

            foreach (var item in json_array)
            {
                MovieItem movie = new MovieItem(
                    Commons.StripHtmlTag(item["title"].ToString()),
                    item["link"].ToString(),
                    item["image"].ToString(),
                    item["subtitle"].ToString(),
                    item["pubDate"].ToString(),
                    Commons.StripPipe(item["director"].ToString()),
                    Commons.StripPipe(item["actor"].ToString()),
                    item["userRating"].ToString()
                    );

                movieItems.Add(movie);
            }

            this.DataContext = movieItems;
        }
示例#2
0
        private void BtnWatchTrailer_Click(object sender, RoutedEventArgs e)
        {
            if (GrdData.SelectedItems.Count == 0)
            {
                Commons.ShowMessageAsync("유투브영화", "영화를 선택하세요.");
                return;
            }

            if (GrdData.SelectedItems.Count > 1)
            {
                Commons.ShowMessageAsync("유투브영화", "영화를 하나만 선택하세요.");
                return;
            }

            string movieName = "";

            if (Commons.IsFavorite)//즐겨찾기
            {
                var item = GrdData.SelectedItem as NaverFavoriteMovies;
                //MessageBox.Show(item.Link);
                movieName = item.Title;
            }
            else //네이버 Api
            {
                var item = GrdData.SelectedItem as MovieItem;
                //MessageBox.Show(item.Link);
                movieName = item.Title;
            }


            var trailerWindow = new TrailerWindow(movieName);

            trailerWindow.Owner = this;
            trailerWindow.WindowStartupLocation = WindowStartupLocation.CenterOwner;
            trailerWindow.ShowDialog();
        }
示例#3
0
        /*Naver API 사용을 위한 사용자 정보입력 부분*/
        private void PorcSearchNaverApi(string movieName)
        {
            // API 호츨
            string clientID     = "kOQI3W4J8QmJV8UukmBZ";   // 발급받은 API 아이디
            string clientSecret = "e9EjOaik91";             // 발급받은 API 비밀번호
            string openApiUrl   = $"https://openapi.naver.com/v1/search/movie?start=1&display=30&query={movieName}";

            string  resJson    = Commons.GetOpenApiResult(openApiUrl, clientID, clientSecret);
            JObject parsedJson = JObject.Parse(resJson);    // API 에서 발급받은 정보(string)를 JSON으로 파싱

            int total   = Convert.ToInt32(parsedJson["total"]);
            int display = Convert.ToInt32(parsedJson["display"]);

            StsResult.Content = $"{total} 중 {display} 호출 성공";

            JToken items      = parsedJson["items"];
            JArray json_array = (JArray)items;

            List <MovieItem> movieItems = new List <MovieItem>(); // API에서 불러온 데이터들을 저장할 리스트 선언

            foreach (var item in json_array)
            {
                MovieItem movie = new MovieItem(
                    Commons.StripHtmlTag(item["title"].ToString()),
                    item["link"].ToString(),
                    item["image"].ToString(),
                    item["subtitle"].ToString(),
                    item["pubDate"].ToString(),
                    Commons.StripPipe(item["director"].ToString()),
                    Commons.StripPipe(item["actor"].ToString()),
                    item["userRating"].ToString());
                movieItems.Add(movie);
            }

            this.DataContext = movieItems;      // 그리드에 데이터 바인딩
        }
示例#4
0
        private void BtnDeleteWatchList_Click(object sender, RoutedEventArgs e)
        {
            if (!Commons.IsFavorite)
            {
                Commons.ShowMessageAsync("즐겨찾기", "즐겨찾기 내용이 아니면 삭제할 수 없습니다.");
                return;
            }

            if (GrdData.SelectedItems.Count == 0)
            {
                Commons.ShowMessageAsync("즐겨찾기", "즐겨찾기에서 삭제할 영화를 선택하세요.");
                return;
            }

            try
            {
                foreach (NaverFavoriteMovies item in GrdData.SelectedItems)
                {
                    using (var ctx = new OpenApiLabEntities())
                    {
                        var itemDelete = ctx.NaverFavoriteMovies.Find(item.Idx); //삭제할 영화 객체 검색 후 생성
                        ctx.Entry(itemDelete).State = EntityState.Deleted;       //검색객체 상태를 삭제로 변경
                        ctx.SaveChanges();                                       //comit
                    }
                }
            }
            catch (Exception ex)
            {
                Commons.ShowMessageAsync("예외", $"예외발생 : {ex}");
                Commons.LOGGER.Error($"예외발생 : {ex}");
            }

            //삭제
            Commons.IsDelete = true;
            BtnViewWatchList_Click(sender, e);
        }
        private void LsvYoutubeSearch_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            if (LsvYoutubeSearch.SelectedItems.Count == 0)
            {
                Commons.ShowMessageAsync("유투브보기", "예고편을 볼 영화를 선택하세요.");
                return;
            }
            if (LsvYoutubeSearch.SelectedItems.Count > 1)
            {
                Commons.ShowMessageAsync("유투브보기", "예고편을 하나만 선택하세요.");
                return;
            }

            if (LsvYoutubeSearch.SelectedItem is YoutubeItem)
            {
                var video = LsvYoutubeSearch.SelectedItem as YoutubeItem;

                // 윈도우 브라우저에서 띄우기
                BrwYoutubeWatch.Source = new Uri(video.URL, UriKind.RelativeOrAbsolute);

                // 웹 브라우저에서 띄우기
                //Process.Start(video.URL);
            }
        }
示例#6
0
        private void BtnSearch_Click(object sender, RoutedEventArgs e)
        {
            StsResult.Content = "";
            ImgPoster.Source  = new BitmapImage(new Uri("No_Image.jpg", UriKind.RelativeOrAbsolute));
            if (string.IsNullOrEmpty(TxtMovieName.Text))
            {
                StsResult.Content = "검색할 영화명을 입력 후, 검색버튼을 눌러주세요.";
                Commons.ShowMessageAsync("검색", "검색할 영화명을 입력 후, 검색버튼을 눌러주세요.");
                return;
            }

            //Commons.ShowMessageAsync("결과", $"{TxtMovieName.Text}");
            try
            {
                ProcSearchNaverApi(TxtMovieName.Text);
                Commons.ShowMessageAsync("검색", "영화검색 완료");
            }
            catch (Exception ex)
            {
                Commons.ShowMessageAsync("예외", $"예외발생 : {ex}");
                Commons.LOGGER.Error($"예외발생 : {ex}");
            }
            Commons.IsFavorite = false; //즐겨찾기 아님
        }
        private void BtnDeleteWatchList_Click(object sender, RoutedEventArgs e)
        {
            if (Commons.IsFavorite == false)
            {
                Commons.ShowMessageAsync("즐겨찾기", "즐겨찾기가 아닌 영화는 삭제할 수 없습니다.");
                return;
            }

            if (GrdData.SelectedItems.Count == 0)
            {
                Commons.ShowMessageAsync("즐겨찾기", "삭제할 즐겨찾기 영화를 선택하세요.");
                return;
            }

            #region 다른 삭제 방법

            /*List<NaverFavoriteMovies> list = new List<NaverFavoriteMovies>();
             *
             * foreach (MovieItem item in GrdData.SelectedItems)
             * {
             *  NaverFavoriteMovies temp = new NaverFavoriteMovies()
             *  {
             *      Title = item.Title,
             *      Link = item.Link,
             *      Image = item.Image,
             *      SubTitle = item.SubTitle,
             *      PubDate = item.PubDate,
             *      Actor = item.Actor,
             *      UserRating = item.UserRating,
             *      RegDate = DateTime.Now
             *  };
             *
             *  list.Add(temp);
             * }
             *
             * try
             * {
             *  using (var ctx = new OpenApiLabEntities())
             *  {
             *      //ctx.NaverFavoriteMovies.AddRange(list); 아래와 동
             *      ctx.Set<NaverFavoriteMovies>().RemoveRange(list);
             *      ctx.SaveChanges();
             *  }
             *
             *  Commons.ShowMessageAsync("저장", "즐겨찾기에서 삭제했습니다!");
             * }
             * catch (Exception ex)
             * {
             *  Commons.ShowMessageAsync("예외", $"예외발생 : {ex}");
             *  Commons.LOGGER.Error($"예외발생 : {ex}");
             * }*/
            #endregion

            //List<NaverFavoriteMovies> removeList = new List<NaverFavoriteMovies>();
            foreach (NaverFavoriteMovies item in GrdData.SelectedItems)
            {
                using (var ctx = new OpenApiLabEntities())
                {
                    //ctx.NaverFavoriteMovies.Remove(item);
                    var itemDelete = ctx.NaverFavoriteMovies.Find(item.Idx); // 삭제할 영화 객체 검색 후 생성
                    ctx.Entry(itemDelete).State = EntityState.Deleted;       // 검색 객체 상태를 삭제로 변경
                    ctx.SaveChanges();                                       // 커밋
                }
            }

            Commons.IsDelete = true;
            // 조회 쿼리
            BtnViewWatchList_Click(sender, e);
        }