Ejemplo n.º 1
0
        public ActionResult GetComplete(string id)
        {
            var resultado = new FilmeIMDBJsonResult();

            var filme = new Imdb(true);

            filme.FilmePorId(id);

            if (filme != null)
            {
                resultado.IDImdb        = id;
                resultado.Titulo        = filme.Nome;
                resultado.URLPoster     = filme.PosterURL;
                resultado.URLImdb       = filme.URLFilme;
                resultado.AnoLancamento = filme.AnoLancamento;
                resultado.Diretor       = filme.Diretor;
                resultado.Generos       = filme.Generos;
                resultado.Sinopse       = filme.Sinopse;
                resultado.Duracao       = filme.Duracao;

                resultado.ListaAtores = new List <AtorIMDBJsonResult>();

                foreach (var ator in filme.Atores)
                {
                    resultado.ListaAtores.Add(new AtorIMDBJsonResult()
                    {
                        URLImdb = ator.URLImdb, IDImdb = ator.IdImdb, Nome = ator.Nome, Papel = ator.Papel, URLFoto = ator.URLFoto
                    });
                }
            }

            return(this.Jsonp(resultado));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Carrega dados do IMDB de um filme via serviço REST
        /// </summary>
        /// <param name="id">ID do Imdb do filme</param>
        private FilmeIMDBJsonResult CarregarFilmeImdb(string id)
        {
            var filme = new FilmeIMDBJsonResult();

            try
            {
                var request = WebRequest.Create(String.Format("http://www.bit-share-rest.net/Movies/GetComplete/?id={0}&JsonCallback=callback", id)) as HttpWebRequest;
                using (var response = request.GetResponse() as HttpWebResponse)
                {
                    if (response.StatusCode != HttpStatusCode.OK)
                    {
                        throw new Exception(String.Format(
                                                "Server error (HTTP {0}: {1}).",
                                                response.StatusCode,
                                                response.StatusDescription));
                    }
                    JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
                    using (var streamReader = new StreamReader(response.GetResponseStream()))
                    {
                        var responseText = streamReader.ReadToEnd();
                        filme = jsonSerializer.Deserialize <FilmeIMDBJsonResult>(responseText.Replace("callback(", "").Replace(");", ""));
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }

            return(filme);
        }
Ejemplo n.º 3
0
        public ActionResult Get(string id)
        {
            var resultado = new FilmeIMDBJsonResult();

            var filme = new Imdb(false);

            filme.FilmePorId(id);

            if (filme != null)
            {
                resultado.IDImdb        = id;
                resultado.Titulo        = filme.Nome;
                resultado.URLPoster     = filme.PosterURL;
                resultado.URLImdb       = filme.URLFilme;
                resultado.AnoLancamento = filme.AnoLancamento;
                resultado.Diretor       = filme.Diretor;
                resultado.Generos       = filme.Generos;
                resultado.Sinopse       = filme.Sinopse;
                resultado.Duracao       = filme.Duracao;

                foreach (var ator in filme.Atores)
                {
                    resultado.Cast += ator.ToString() + "<br />";
                }
            }
            return(this.Jsonp(resultado));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Insere um novo filme na base de dados, com base nas informações do IMDB e inseridas pelo usuário
        /// </summary>
        /// <param name="repositorioFilme">Repositório da base de dados com contexto já criado</param>
        /// <param name="filmeImdb">Informações do IMDB para o filme especificado</param>
        /// <param name="model">Informações inseridas pelo usuário para o lançamento do torrent</param>
        /// <returns>Filme criado na base de dados</returns>
        private Filme CriarNovoFilme(DataRepository <Filme> repositorioFilme, FilmeIMDBJsonResult filmeImdb, TorrentUploadModel model)
        {
            var filme = new Filme();

            filme.IdFilme        = 0;
            filme.IdImdb         = filmeImdb.IDImdb;
            filme.Nome           = filmeImdb.Titulo;
            filme.Diretor        = filmeImdb.Diretor;
            filme.AnoLancamento  = filmeImdb.AnoLancamento;
            filme.Sinopse        = filmeImdb.Sinopse;
            filme.URLPoster      = filmeImdb.URLPoster;
            filme.Generos        = filmeImdb.Generos;
            filme.TrailerYoutube = model.TrailerYoutube == null ? "" : model.TrailerYoutube;
            filme.ScreenShots    = ""; //TODO
            filme.Duracao        = filmeImdb.Duracao;

            foreach (var atorImdb in filmeImdb.ListaAtores)
            {
                var  repositorioAtor = new DataRepository <Ator>(repositorioFilme.Context);
                var  atores          = from item in repositorioAtor.Fetch() where item.IdImdb == atorImdb.IDImdb select item;
                Ator atorAtual;
                if (atores.Count() > 0)
                {
                    atorAtual = atores.First();
                }
                else
                {
                    atorAtual         = new Ator();
                    atorAtual.IdAtor  = 0;
                    atorAtual.Nome    = atorImdb.Nome;
                    atorAtual.IdImdb  = atorImdb.IDImdb;
                    atorAtual.URLFoto = atorImdb.URLFoto == null ? "" : atorImdb.URLFoto;
                    repositorioAtor.Add(atorAtual);
                }

                filme.Papels.Add(new Papel()
                {
                    Ator = atorAtual, IdPapel = 0, NomePersonagem = atorImdb.Papel
                });
            }

            return(filme);
        }