Esempio n. 1
0
        public void UpdateTest()
        {
            DbConnection conn = DbConnectionFactory.CreateTransient();

            QualidadeDownload result;

            QualidadeDownload data = _listQualidadeDownloads[0];

            using (var context = new Context(conn))
            {
                context.QualidadeDownload.Add(data);
                context.SaveChanges();

                var svc = new QualidadeDownloadService(context);

                data.sIdentificadoresQualidade = "Atualizado";

                svc.Update(data);

                result = context.QualidadeDownload.First();
            }

            Assert.AreEqual("Atualizado", result.sIdentificadoresQualidade);
        }
Esempio n. 2
0
        private static IEnumerable <ItemDownload> ProcurarEpisodiosNosFeeds()
        {
            var lstEpisodiosParaBaixar = new List <ItemDownload>();

            var feedsService             = App.Container.Resolve <FeedsService>();
            var qualidadeDownloadService = App.Container.Resolve <QualidadeDownloadService>();
            IEnumerable <Feed> lstFeeds  = feedsService.GetLista()
                                           .Where(x => !x.bIsFeedPesquisa &&
                                                  (x.nIdTipoConteudo == Enums.TipoConteudo.Série || x.nIdTipoConteudo == Enums.TipoConteudo.Anime))
                                           .OrderBy(x => x.nNrPrioridade);
            IEnumerable <QualidadeDownload> lstQualidadeDownloads = qualidadeDownloadService.GetLista().OrderBy(x => x.nPrioridade);
            var rgxQualidade = new Regex($".*?({string.Join("|", lstQualidadeDownloads.Select(x => x.sIdentificadoresQualidade))})");

            foreach (Feed item in lstFeeds)
            {
                RssFeed rss;

                try
                {
                    rss = RssFeed.Create(new Uri(item.sLkFeed));
                }
                catch (Exception ex)
                {
                    new MediaManagerException(ex).TratarException(string.Format(Mensagens.Ocorreu_um_erro_ao_abrir_o_feed_0_URL_1_, item.sDsFeed, item.sLkFeed));
                    continue;
                }

                foreach (RssItem objRssItem in rss.Channel.Items)
                {
                    try
                    {
                        var episodio = new Episodio {
                            sDsFilepath = objRssItem.Title
                        };
                        string extensao = Path.GetExtension(Helper.RetirarCaracteresInvalidos(objRssItem.Title));

                        if (!episodio.IdentificarEpisodio() ||
                            episodio.nIdTipoConteudo != item.nIdTipoConteudo ||
                            episodio.nIdEstadoEpisodio != Enums.EstadoEpisodio.Desejado ||
                            episodio.oSerie.bIsParado ||
                            (!string.IsNullOrWhiteSpace(extensao) && !Settings.Default.ExtensoesRenomeioPermitidas.Contains(extensao)))
                        {
                            continue;
                        }

                        string strIdentificador = rgxQualidade.Match(objRssItem.Title).Groups[1].Value;

                        // Verifica se é vazio/null para atribuir a qualidade "Desconhecido".
                        QualidadeDownload objQualidadeDownload = !string.IsNullOrWhiteSpace(strIdentificador)
                                                                     ? lstQualidadeDownloads.FirstOrDefault(x => x.sIdentificadoresQualidade.Split('|').Any(y => y == strIdentificador))
                                                                     : lstQualidadeDownloads.First(x => x.nCdQualidadeDownload == 1);

                        if (lstEpisodiosParaBaixar.Any(x => x.ObjEpisodio.nCdEpisodioAPI == episodio.nCdEpisodioAPI))
                        {
                            lstEpisodiosParaBaixar.First(x => x.ObjEpisodio.nCdEpisodioAPI == episodio.nCdEpisodioAPI).LstObjRssItem.Add(objRssItem, objQualidadeDownload);
                        }
                        else
                        {
                            lstEpisodiosParaBaixar.Add(new ItemDownload {
                                ObjEpisodio = episodio, LstObjRssItem = new Dictionary <RssItem, QualidadeDownload> {
                                    { objRssItem, objQualidadeDownload }
                                }
                            });
                        }
                    }
                    catch (Exception e)
                    {
                        new MediaManagerException(e).TratarException(string.Format(Mensagens.Ocorreu_um_erro_ao_procurar_o_item_0_do_feed_RSS_1_, objRssItem.Title, item.sDsFeed));
                    }
                }
            }

            return(lstEpisodiosParaBaixar);
        }