public async override Task <ActionResult <IEnumerable <New> > > GetTopNews([FromQuery] int quantity, [FromQuery] string subject)
        {
            var result = new Result();

            if (quantity > 0)
            {
                Website bds = new CofeeLand();
                if (subject == "da")
                {
                    bds = new CofeeLandDa();
                }
                else if (subject == "bds")
                {
                    bds = new CofeeLandBds();
                }
                var news = await bds.GetTopNews(quantity, subject);

                if (news != null)
                {
                    foreach (var n in news)
                    {
                        result.Total++;
                        var existed = _context.News.FirstOrDefault(e => e.Title.ToLower() == n.Title);
                        if (existed != null)
                        {
                            continue;
                        }
                        try
                        {
                            var post = PostCreateModel.Create(n);
                            if (post == null)
                            {
                                continue;
                            }
                            Wordpress.CreateAsync(post);
                            _context.News.Add(n);
                            result.Published++;
                        }
                        catch (System.Exception e)
                        {
                            continue;
                        }
                        // }
                    }
                    await _context.SaveChangesAsync();

                    return(Ok(result));
                }

                return(NotFound());
            }
            return(BadRequest(nameof(quantity)));
        }
Exemplo n.º 2
0
        public async override Task <ActionResult <IEnumerable <New> > > GetTopNews([FromQuery] int quantity, [FromQuery] string subject)
        {
            if (quantity > 0)
            {
                Website bds  = new DanTri();
                var     news = await bds.GetTopNews(quantity, subject);

                if (news != null)
                {
                    foreach (var n in news)
                    {
                        var existed = _context.News.FirstOrDefault(e => e.Title.ToLower() == n.Title);
                        if (existed != null)
                        {
                            continue;
                        }
                        try
                        {
                            var post = PostCreateModel.Create(n);
                            if (post == null)
                            {
                                continue;
                            }
                            Wordpress.CreateAsync(post);
                            _context.News.Add(n);
                        }
                        catch (System.Exception e)
                        {
                            continue;
                        }
                        // }
                    }
                    await _context.SaveChangesAsync();

                    // try
                    // {
                    //     await _context.SaveChangesAsync();
                    // }
                    // catch (Exception e)
                    // {

                    //     throw new Exception(e.Message);
                    // }
                    return(Ok(news));
                }

                return(NotFound());
            }
            return(BadRequest(nameof(quantity)));
        }
Exemplo n.º 3
0
        public override async Task <ActionResult <IEnumerable <New> > > GetTopNews([FromQuery] int quantity, [FromQuery] string subject)
        {
            if (quantity > 0)
            {
                Website vnexpress = new Zing();
                // vnexpress.SetUrl("https://vnexpress.net");
                var news = await vnexpress.GetTopNews(quantity, subject);

                if (news != null)
                {
                    foreach (var n in news)
                    {
                        var exist = _context.News.FirstOrDefault(e => e.Url == n.Url && e.Title == n.Title);
                        if (exist == null)
                        {
                            _context.News.Add(n);

                            try
                            {
                                var post = PostCreateModel.Create(n);
                                if (post == null)
                                {
                                    return(BadRequest());
                                }
                                await CreatePost(post);
                            }
                            catch (System.Exception e)
                            {
                                return(BadRequest(e.Message));
                            }
                        }
                    }
                    try
                    {
                        // await _context.SaveChangesAsync();
                    }
                    catch (Exception e)
                    {
                        throw new Exception(e.Message);
                    }
                    return(Ok(news));
                }
            }
            return(BadRequest(nameof(quantity)));
        }
Exemplo n.º 4
0
        public override async Task <ActionResult <IEnumerable <New> > > GetTopNews([FromQuery] int quantity, [FromQuery] string subject)
        {
            if (quantity > 0)
            {
                var     result    = new Result();
                Website vnexpress = new Vne();
                vnexpress.SetUrl("https://vnexpress.net");
                var news = await vnexpress.GetTopNews(quantity, subject);

                if (news != null)
                {
                    foreach (var n in news)
                    {
                        result.Total++;
                        var existed = _context.News.FirstOrDefault(e => e.Title.ToLower() == n.Title);
                        if (existed != null)
                        {
                            continue;
                        }

                        try
                        {
                            var post = PostCreateModel.Create(n);
                            if (post == null)
                            {
                                continue;
                            }
                            Wordpress.CreateAsync(post);
                            _context.News.Add(n);
                            result.Published++;
                        }
                        catch (System.Exception e)
                        {
                            continue;
                        }
                    }
                    await _context.SaveChangesAsync();

                    return(Ok(result));
                }
            }
            return(BadRequest(nameof(quantity)));
        }