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; }
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(); }
/*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; // 그리드에 데이터 바인딩 }
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); } }
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); }