예제 #1
0
        private IList <Curtinha> GetNoticiasUol()
        {
            IList <Curtinha> noticiasUol = new List <Curtinha>();

            var client = new RestClient("https://rss.home.uol.com.br/index.xml");

            var request = new RestRequest(Method.GET)
            {
                RequestFormat = DataFormat.Xml,
                XmlSerializer = new RestSharp.Serializers.DotNetXmlSerializer()
            };

            IRestResponse response = client.Execute(request);

            if (response.IsSuccessful)
            {
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(response.Content);

                XmlNodeList noticias = doc.DocumentElement.SelectNodes("/rss/channel/item");

                foreach (XmlNode noticia in noticias)
                {
                    XmlNodeList atributosNoticia = noticia.ChildNodes;
                    Curtinha    curtinha         = new Curtinha();

                    foreach (XmlNode atributo in atributosNoticia)
                    {
                        switch (atributo.Name)
                        {
                        case "title":
                            string[] titulo = atributo.InnerText.Split('|');
                            curtinha.Titulo = "(" + titulo[0].Trim() + ") " + titulo[1].Trim();
                            break;

                        case "description":
                            curtinha.Resumo = atributo.InnerText;
                            break;

                        case "link":
                            curtinha.Link = atributo.InnerText;
                            break;

                        case "media:content":
                            curtinha.UrlImagem = "https" + atributo.Attributes["url"].Value.Substring(4);
                            break;

                        case "pubDate":
                            curtinha.DataPublicacao = DateTime.ParseExact(atributo.InnerText.Substring(0, atributo.InnerText.Length - 6), "ddd, dd MMM yyyy H:mm:ss", CultureInfo.InvariantCulture);
                            curtinha.DataEdicao     = DateTime.Now;
                            break;
                        }
                    }

                    noticiasUol.Add(curtinha);
                }
            }

            return(noticiasUol);
        }
예제 #2
0
        public IHttpActionResult Editar(Curtinha curtinhaEditada)
        {
            var curtinhaAtual = _context.Curtinhas.SingleOrDefault(c => c.Id == curtinhaEditada.Id);

            if (curtinhaAtual != null)
            {
                curtinhaAtual.UrlImagem  = curtinhaEditada.UrlImagem;
                curtinhaAtual.Titulo     = curtinhaEditada.Titulo;
                curtinhaAtual.Resumo     = curtinhaEditada.Resumo;
                curtinhaAtual.Link       = curtinhaEditada.Link;
                curtinhaAtual.Detalhes   = curtinhaEditada.Detalhes;
                curtinhaAtual.DataEdicao = DateTime.Now;
                _context.SaveChanges();
                return(Ok(curtinhaAtual));
            }
            else
            {
                return(NotFound());
            }
        }
예제 #3
0
        public IHttpActionResult AdicionarCurtinha(Curtinha curtinha)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Curtinha novaCurtinha = new Curtinha()
            {
                UrlImagem      = curtinha.UrlImagem,
                Titulo         = curtinha.Titulo,
                Resumo         = curtinha.Resumo,
                Detalhes       = curtinha.Detalhes,
                DataPublicacao = DateTime.Now,
                DataEdicao     = DateTime.Now,
                Link           = curtinha.Link
            };

            _context.Curtinhas.Add(novaCurtinha);
            _context.SaveChanges();
            VerificarQtdCurtinhas();
            return(Ok(novaCurtinha));
        }