public async Task <IActionResult> Get(string query) { YouTubeResponseViewModel result = await _youTubeService.SearchAsync(query, pageSize); if (!result.IsSuccess) { return(BadRequest(CreateBadRequest("Não foi possível obter informações do YouTube!"))); } try { return(Ok(await GravarHistoricos(result))); } catch (ArgumentNullException ex) { return(BadRequest(CreateBadRequest(ex.Message))); } catch (ArgumentException ex) { return(BadRequest(CreateBadRequest(ex.Message))); } catch (ServiceException ex) { return(BadRequest(CreateBadRequest(ex.Message))); } }
private async Task GravarHistoricoVideos(YouTubeResponseViewModel result) { var lista = result.Items .Where(w => w.Tipo == ResultType.Video) .Select(s => s.YoutubeVideoId) .ToList(); var videosDetails = await _youTubeService.GetVideosByIdsAsync(lista); await _videoService.SincronizarVideosAsync(videosDetails); }
private async Task GravarHistoricoCanal(YouTubeResponseViewModel result) { var lista = result.Items .Where(w => w.Tipo == ResultType.Canal) .Select(s => (CanalSearchResultViewModel)s) .ToList(); await _canalService.SincronizarCanaisAsync(lista); var listRemoved = lista.Where(x => x.IncludeInList == false); foreach (var item in listRemoved) { result.Items.Remove(item); } }
public YouTubeResponseViewModel BuscaVideos(string pesquisa) { var youtubeService = new YouTubeService(new BaseClientService.Initializer() { ApiKey = "Chave_API", ApplicationName = "Chave de API 1" }); var searchListRequest = youtubeService.Search.List("snippet"); searchListRequest.Q = pesquisa; searchListRequest.Order = SearchResource.ListRequest.OrderEnum.Relevance; searchListRequest.MaxResults = 10; var searchListResponse = searchListRequest.Execute(); var responseViewModel = new YouTubeResponseViewModel { Etag = searchListResponse.ETag, Kind = searchListResponse.Kind, NextPageToken = searchListResponse.NextPageToken, RegionCode = searchListResponse.RegionCode, TotalResults = searchListResponse.PageInfo.TotalResults, Items = new List <ItemViewModel>() }; foreach (var item in searchListResponse.Items) { responseViewModel.Items.Add(new ItemViewModel { Description = item.Snippet.Description, MediumThumbnailUrl = item.Snippet.Thumbnails.Medium.Url, PublishedAt = item.Snippet.PublishedAt.Value, Title = item.Snippet.Title, ChanelTitle = item.Snippet.ChannelTitle }); } return(responseViewModel); }
public async Task SearchAsync_Falha_Requisicao() { YouTubeResponseViewModel result = await _youtubeClientComChaveErrada.SearchAsync(_SEARCH_QUERY, 5); Assert.AreEqual(false, result.IsSuccess); }
private async Task <ResponseRoot <YouTubeResponseViewModel> > GravarHistoricos(YouTubeResponseViewModel result) { await GravarHistoricoCanal(result); await GravarHistoricoVideos(result); return(new ResponseRoot <YouTubeResponseViewModel>() { Data = result }); }