public void LoadConteudos(Enums.TipoConteudo contentType) { var frmBarraProgresso = new frmBarraProgresso(); frmBarraProgresso.BarraProgressoViewModel.sDsTarefa = "Procurando pastas..."; frmBarraProgresso.BarraProgressoViewModel.Worker.DoWork += (sender, e) => { var conteudos = new ObservableCollection <Video>(); var seriesService = App.Container.Resolve <SeriesService>(); switch (contentType) { case Enums.TipoConteudo.AnimeFilmeSérie: DirectoryInfo[] dirSeries = Helper.retornarDiretoriosSeries(); DirectoryInfo[] dirAnimes = Helper.retornarDiretoriosAnimes(); DirectoryInfo[] dirFilmes = Helper.retornarDiretoriosFilmes(); frmBarraProgresso.BarraProgressoViewModel.dNrProgressoMaximo = (dirSeries != null ? dirSeries.Length : 0) + (dirAnimes != null ? dirAnimes .Length : 0) + (dirFilmes != null ? dirFilmes.Length : 0); if (dirSeries != null) { foreach (DirectoryInfo dir in dirSeries) { frmBarraProgresso.BarraProgressoViewModel.dNrProgressoAtual++; frmBarraProgresso.BarraProgressoViewModel.sDsTexto = dir.FullName; if (!seriesService.VerificarSeExiste(dir.FullName)) { List <Serie> lstSeries = APIRequests.GetSeries(dir.Name); if (lstSeries.Count == 0) { var conteudo = new Serie(); conteudo.nIdTipoConteudo = Enums.TipoConteudo.Série; conteudo.sDsPasta = dir.FullName; conteudo.bFlNaoEncontrado = true; conteudos.Add(conteudo); } else if (lstSeries.Count > 0 && !seriesService.VerificarSeExiste(lstSeries[0].nCdApi)) { Serie conteudo = lstSeries[0]; conteudo.nIdTipoConteudo = Enums.TipoConteudo.Série; conteudo.sDsPasta = dir.FullName; conteudo.bFlSelecionado = true; if (!string.IsNullOrWhiteSpace(conteudo.sAliases)) { foreach (string item in conteudo.sAliases.Split('|')) { var alias = new SerieAlias(item); if (conteudo.lstSerieAlias == null) { conteudo.lstSerieAlias = new ObservableCollection <SerieAlias>(); } conteudo.lstSerieAlias.Add(alias); } } conteudos.Add(conteudo); } } } } if (dirAnimes != null) { foreach (DirectoryInfo dir in dirAnimes) { frmBarraProgresso.BarraProgressoViewModel.dNrProgressoAtual++; frmBarraProgresso.BarraProgressoViewModel.sDsTexto = dir.FullName; if (!seriesService.VerificarSeExiste(dir.FullName)) { List <Serie> lstSeries = APIRequests.GetSeries(dir.Name); if (lstSeries == null || lstSeries.Count == 0) { var conteudo = new Serie(); conteudo.nIdTipoConteudo = Enums.TipoConteudo.Anime; conteudo.sDsPasta = dir.FullName; conteudo.bFlNaoEncontrado = true; conteudos.Add(conteudo); } else if (lstSeries.Count > 0 && !seriesService.VerificarSeExiste(lstSeries[0].nCdApi)) { Serie conteudo = lstSeries[0]; conteudo.nIdTipoConteudo = Enums.TipoConteudo.Anime; conteudo.sDsPasta = dir.FullName; conteudo.bFlSelecionado = true; if (!string.IsNullOrWhiteSpace(conteudo.sAliases)) { foreach (string item in conteudo.sAliases.Split('|')) { var alias = new SerieAlias(item); if (conteudo.lstSerieAlias == null) { conteudo.lstSerieAlias = new ObservableCollection <SerieAlias>(); } conteudo.lstSerieAlias.Add(alias); } } conteudos.Add(conteudo); } } } } //if (dirFilmes != null) {// TODO Filmes // foreach (var dir in dirFilmes) //{ // if (!DatabaseHelper.VerificaSeExiste(dir.FullName)) // { // filmes = await Helper.API_PesquisarConteudoAsync(dir.Name, Enums.TipoConteudo.movie.ToString(), false); // if (filmes.Count != 0 && !DatabaseHelper.VerificaSeExiste(filmes[0].Video.ids.trakt)) // conteudos.Add(new ConteudoGrid { Nome = filmes[0].Video.title, Pasta = dir.FullName, TipoConteudo = Enums.TipoConteudo.movie, TraktSlug = filmes[0].Video.ids.slug, IsSelected = true }); // } // } //} break; default: throw new InvalidEnumArgumentException(); } lstConteudos = conteudos; if (lstConteudos.Count == 0) { Helper.MostrarMensagem("Nenhum novo conteúdo foi encontrado.", Enums.eTipoMensagem.Informativa); } //Conteudos.Clear(); //foreach (var item in conteudos) //{ // Conteudos.Add(item); //} }; frmBarraProgresso.BarraProgressoViewModel.Worker.RunWorkerAsync(); frmBarraProgresso.ShowDialog(Owner); }
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); }