コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
                }
            }
        }