public void Execute(object parameter)
            {
                var ProcurarConteudoViewModel = parameter as ProcurarConteudoViewModel;
                var frmBarraProgresso         = new frmBarraProgresso();

                frmBarraProgresso.BarraProgressoViewModel.dNrProgressoMaximo =
                    ProcurarConteudoViewModel.lstConteudos.Where(x => x.bFlSelecionado).Count();
                frmBarraProgresso.BarraProgressoViewModel.sDsTarefa      = "Salvando...";
                frmBarraProgresso.BarraProgressoViewModel.Worker.DoWork += (s, ev) =>
                {
                    var seriesService = App.Container.Resolve <SeriesService>();
                    //if (ProcurarConteudoViewModel.lstConteudos.Where(x => x.bFlSelecionado && !x.bFlNaoEncontrado).Count() == 0)
                    //{
                    //    Helper.MostrarMensagem("Para realizar a operação, selecione ao menos um registro.", Enums.eTipoMensagem.Alerta);
                    //}
                    foreach (Video item in ProcurarConteudoViewModel.lstConteudos)
                    {
                        if (item.bFlSelecionado && !item.bFlNaoEncontrado)
                        {
                            switch (item.nIdTipoConteudo)
                            {
                            case Enums.TipoConteudo.Série:
                            case Enums.TipoConteudo.Anime:
                            {
                                frmBarraProgresso.BarraProgressoViewModel.sDsTexto = "Salvando \"" + item.sDsTitulo +
                                                                                     "\" (" +
                                                                                     (frmBarraProgresso
                                                                                      .BarraProgressoViewModel
                                                                                      .dNrProgressoAtual + 1) +
                                                                                     "/" +
                                                                                     frmBarraProgresso
                                                                                     .BarraProgressoViewModel
                                                                                     .dNrProgressoMaximo +
                                                                                     ")...";

                                if (item.nIdEstado != Enums.Estado.Completo)
                                {
                                    Serie serie =
                                        APIRequests.GetSerieInfoAsync(item.nCdApi,
                                                                      Properties.Settings.Default
                                                                      .pref_IdiomaPesquisa).Result;
                                    serie.nIdTipoConteudo = item.nIdTipoConteudo;
                                    serie.sDsPasta        = item.sDsPasta;
                                    serie.sAliases        = item.sAliases;
                                    serie.lstSerieAlias   = item.lstSerieAlias;
                                    serie.sDsTitulo       = item.sDsTitulo;
                                    serie.SetEstadoEpisodio();
                                    seriesService.Adicionar(serie);
                                }
                                else
                                {
                                    (item as Serie).SetEstadoEpisodio();
                                    seriesService.Adicionar((Serie)item);
                                }

                                frmBarraProgresso.BarraProgressoViewModel.dNrProgressoAtual++;

                                if (frmBarraProgresso.BarraProgressoViewModel.dNrProgressoAtual ==
                                    frmBarraProgresso.BarraProgressoViewModel.dNrProgressoMaximo)
                                {
                                    frmBarraProgresso.BarraProgressoViewModel.sDsTexto = "Concluído.";
                                }
                                break;
                            }

                            case Enums.TipoConteudo.Filme:
                                throw new NotImplementedException();     // TODO Filmes
                            }
                        }
                    }

                    Helper.MostrarMensagem("Séries inseridas com sucesso.", Enums.eTipoMensagem.Informativa);
                };

                frmBarraProgresso.BarraProgressoViewModel.Worker.RunWorkerCompleted += (s, ev) => ProcurarConteudoViewModel.ActionFechar();
                frmBarraProgresso.BarraProgressoViewModel.Worker.RunWorkerAsync();
                frmBarraProgresso.ShowDialog(ProcurarConteudoViewModel.Owner);
            }
예제 #2
0
        public static IList <Serie> RetornarListaSeries()
        {
            _lstSeries    = new List <Serie>();
            _lstEpisodios = new List <Episodio>();

            var lstIntIdsSeries = new List <int>
            {
                257655,
                273181,
                205281,
                121361,
                274431,
                281485,
                263365,
                281662,
                268592,
                80379,
                279121,
                258744,
                153021,
                264492,
                267440,
                289679,
                88031,
                295068,
                289882,
                114801,
                79151,
                85249,
                295224,
                249827,
                79824,
                278155,
                81797,
                293088,
                259640,
                251085,
                281249
            };

            foreach (int item in lstIntIdsSeries)
            {
                Serie serie = APIRequests.GetSerieInfoAsync(item, "en").Result;
                serie.nCdVideo = _lstSeries.Any()
                                     ? _lstSeries.Last().nCdVideo + 1
                                     : 1;
                serie.nIdTipoConteudo = Enums.TipoConteudo.Série;
                serie.SetDefaultFolderPath();

                _lstSeries.Add(serie);
                foreach (Episodio episodio in serie.lstEpisodios)
                {
                    episodio.nCdEpisodio = _lstEpisodios.Any()
                                               ? _lstEpisodios.Last().nCdEpisodio
                                               : 1;
                    episodio.nCdVideo = serie.nCdVideo;
                    episodio.oSerie   = serie;
                    _lstEpisodios.Add(episodio);
                }
            }

            return(_lstSeries);
        }
        /*
         * private async void getResultPesquisaAsync(string title)
         * {
         *  lstResultPesquisa.Clear();
         *
         *  lstResultPesquisa.Add(oVideoCarregando);
         *  oVideoSelecionado = oVideoCarregando;
         *  List<Video> lstResultPesquisaTemp = new List<Video>();
         *
         *  if (nIdTipoConteudo == Enums.TipoConteudo.Série || nIdTipoConteudo == Enums.TipoConteudo.Anime)
         *  {
         *      List<Serie> lstSeries = await APIRequests.GetSeriesAsync(title);
         *
         *      if (lstSeries.Count == 0) // Verificar a primeira vez se é null para não exibir a mensagem quando não encontra resultados na tela de procurar conteúdo.
         *      {
         *          InputMessageBox InputMessageBox = new InputMessageBox(inputType.SemResultados);
         *          InputMessageBox.InputViewModel.Properties.InputText = title;
         *          InputMessageBox.ShowDialog();
         *          if (InputMessageBox.DialogResult == true)
         *          {
         *              lstSeries = await APIRequests.GetSeriesAsync(InputMessageBox.InputViewModel.Properties.InputText);
         *          }
         *
         *          while (lstSeries.Count == 0)
         *          {
         *              if (MessageBox.Show("Nenhum resultado encontrado, deseja pesquisar por outro nome?", "Nenhum resultado encontrado - " + Properties.Settings.Default.AppName, MessageBoxButton.YesNo) == MessageBoxResult.Yes)
         *              {
         *                  InputMessageBox = new InputMessageBox(inputType.SemResultados);
         *                  InputMessageBox.InputViewModel.Properties.InputText = title;
         *                  InputMessageBox.ShowDialog();
         *                  if (InputMessageBox.DialogResult == true)
         *                  {
         *                      lstSeries = await APIRequests.GetSeriesAsync(InputMessageBox.InputViewModel.Properties.InputText);
         *                  }
         *              }
         *              else // TODO Fechar tela ao entrar no else
         *              {
         *                  bFechar = true;
         *                  return;
         *              }
         *          }
         *      }
         *
         *      foreach (var item in lstSeries)
         *      {
         *          if (!string.IsNullOrWhiteSpace(sDsPastaEditar)) // Verifica se é edição para setar o folderpath igual.
         *          {
         *              item.sDsPasta = sDsPastaEditar;
         *          }
         *          else
         *          {
         *              item.SetDefaultFolderPath();
         *          }
         *
         *          item.nCdVideo = nCdVideo;
         *          item.nIdTipoConteudo = nIdTipoConteudo;
         *
         *          bool bFlAdicionado = lstResultPesquisaTemp.Select(x => x.nCdApi).Contains(item.nCdApi);
         *
         *          if (!bFlAdicionado)
         *          {
         *              item.sDsSinopse = oVideoCarregando.sDsSinopse;
         *              lstResultPesquisaTemp.Add(item);
         *          }
         *      }
         *  }
         *
         *  lstResultPesquisa.Remove(oVideoCarregando);
         *  lstResultPesquisaTemp.Add(oVideoBuscaPersonalizada);
         *  lstResultPesquisaTemp.ForEach(x => lstResultPesquisa.Add(x));
         *  oVideoSelecionado = lstResultPesquisa[0];
         * }
         */

        private async void AlterarVideoAsync(Video oVideoSelecionadoTemp)
        {
            if (oVideoSelecionado == null || oVideoSelecionado == oVideoCarregando ||
                oVideoSelecionado.nIdEstado == Enums.Estado.Completo ||
                oVideoSelecionado.nIdEstado == Enums.Estado.CompletoSemForeignKeys)
            {
                return;
            }

            if (lstResultPesquisa.Count > 0 && oVideoSelecionado == oVideoBuscaPersonalizada)
            {
                var inputMessageBox = new InputMessageBox(inputType.AdicionarConteudo);
                inputMessageBox.ShowDialog();
                if (inputMessageBox.DialogResult == true)
                {
                    getResultPesquisaAsync(new Serie {
                        sDsTitulo = inputMessageBox.InputViewModel.Properties.InputText
                    });
                    return;
                }
                else
                {
                    _oVideoSelecionado =
                        lstResultPesquisa.FirstOrDefault(x => x.nCdApi == oVideoSelecionadoTemp?.nCdApi);
                    if (oVideoSelecionado == null)
                    {
                        ActionClose(false);
                    }
                    else
                    {
                        OnPropertyChanged(nameof(oVideoSelecionado));
                    }
                    return;
                }
            }
            else if (lstVideosQuaseCompletos != null && lstVideosQuaseCompletos.Count > 0)
            {
                lstVideosQuaseCompletos
                .Where(
                    x =>
                    x.nCdApi == oVideoSelecionado.nCdApi &&
                    (x.nIdEstado == Enums.Estado.Completo || x.nIdEstado == Enums.Estado.CompletoSemForeignKeys))
                .ToList()
                .ForEach(x =>
                {
                    _oVideoSelecionado = x;
                    OnPropertyChanged(nameof(oVideoSelecionado));
                    return;
                });
                //foreach (var item in listaVideosQuaseCompletos)
                //{
                //    if (item.IDApi == SelectedVideo.IDApi && (item.Estado == Enums.Estado.Completo || item.Estado == Enums.Estado.CompletoSemForeignKeys))
                //    {
                //        //Data = item;
                //        _SelectedVideo = item; OnPropertyChanged("SelectedVideo");
                //        return;
                //    }
                //}
            }

            Serie serie =
                await
                APIRequests.GetSerieInfoAsync(oVideoSelecionado.nCdApi,
                                              Properties.Settings.Default.pref_IdiomaPesquisa);

            serie.sDsTitulo = oVideoSelecionado.sDsTitulo;
            // Para manter os titulos no idioma original, ao invés das traduções do SBT (tipo "Os Seguidores" pro The Following ¬¬)
            serie.nIdTipoConteudo = nIdTipoConteudo;

            if (oVideoSelecionado.sDsPasta != null)
            {
                serie.sDsPasta = oVideoSelecionado.sDsPasta;
            }
            else if (sDsPastaEditar != null)
            {
                serie.sDsPasta = sDsPastaEditar;
            }
            else
            {
                serie.SetDefaultFolderPath();
            }

            serie.sAliases = oVideoSelecionado.sAliases;

            if (nCdVideo > 0)
            {
                serie.nCdVideo = nCdVideo;
            }

            lstResultPesquisa.Where(x => x.nCdApi == oVideoSelecionado.nCdApi)
            .ToList()
            .ForEach(x => { x.Clone(serie); });

            lstVideosQuaseCompletos.Add(serie);
            _oVideoSelecionado = serie;
            OnPropertyChanged(nameof(oVideoSelecionado));

            // Para forçar a habilitação do botão de configurar conteúdo (As vezes continua desabilitado até que haja interação na UI, com esse método isso não acontece).
            CommandManager.InvalidateRequerySuggested();
        }