public async Task GetCanalByYoutubeId_Id_Is_Null() { try { await _service.GetCanalByYoutubeId(null); Assert.Fail(); } catch (ArgumentNullException ex) { Assert.IsTrue(ex.ParamName == _CANAL_ID_PARAM_NAME); } }
public async Task SincronizarVideosAsync(IList <VideoSearchResultViewModel> videos) { if (videos == null) { throw new ArgumentNullException(nameof(videos)); } if (videos.Count == 0) { throw new ArgumentException("Lista de videos não contém elementos", nameof(videos)); } foreach (VideoSearchResultViewModel video in videos) { if (string.IsNullOrEmpty(video.YoutubeVideoId)) { throw new ServiceException($"Propriedade {nameof(video.YoutubeVideoId)} não pode ser nula!"); } if (string.IsNullOrEmpty(video.YoutubeChannelId)) { throw new ServiceException($"Propriedade {nameof(video.YoutubeChannelId)} não pode ser nula!"); } if (string.IsNullOrEmpty(video.Titulo)) { throw new ServiceException($"Propriedade {nameof(video.Titulo)} não pode ser nula!"); } if (string.IsNullOrEmpty(video.Descricao)) { throw new ServiceException($"Propriedade {nameof(video.Descricao)} não pode ser nula!"); } var videoDb = await _repository.GetSingleAsync(w => w.VideoId == video.YoutubeVideoId); if (videoDb == null) { var canalDb = await _canalService.GetCanalByYoutubeId(video.YoutubeChannelId); if (canalDb == null) { throw new ServiceException($"Canal informado {nameof(video.YoutubeChannelId)}: {video.YoutubeChannelId} não foi localizado!"); } videoDb = new Video() { CriadoEm = DateTime.Now, AtualizadoEm = DateTime.Now, PublicadoEm = video.PublicadoEm, Definicao = video.Definicao, Descricao = video.Descricao, Idioma = video.Idioma, ImagemUrl = video.ImagemUrl, QuantidadeComentario = video.QuantidadeComentario, QuantidadeDeslike = video.QuantidadeDeslike, QuantidadeLike = video.QuantidadeLike, QuantidadeVisualizacao = video.QuantidadeVisualizacao, Titulo = video.Titulo, VideoId = video.YoutubeVideoId, CanalId = canalDb.Id }; await _repository.InsertAsync(videoDb); } else { videoDb.AtualizadoEm = DateTime.Now; videoDb.PublicadoEm = video.PublicadoEm; videoDb.Definicao = video.Definicao; videoDb.Descricao = video.Descricao; videoDb.Idioma = video.Idioma; videoDb.ImagemUrl = video.ImagemUrl; videoDb.QuantidadeComentario = video.QuantidadeComentario; videoDb.QuantidadeDeslike = video.QuantidadeDeslike; videoDb.QuantidadeLike = video.QuantidadeLike; videoDb.QuantidadeVisualizacao = video.QuantidadeVisualizacao; videoDb.Titulo = video.Titulo; videoDb.VideoId = video.YoutubeVideoId; await _repository.UpdateAsync(videoDb); } } }