Example #1
0
        /// <summary>
        /// Launchs a new new for all the users
        /// </summary>
        /// <param name="message">The info</param>
        /// See <see cref="Areas.Admin.Models.Message"/> to see the param info
        /// <returns>The IActionResult of the launch new action</returns>
        public IActionResult launchNew([FromBody] Message message)
        {
            User user = TokenUserManager.getUserFromToken(HttpContext, _context);

            if (!AdminPolicy.isAdmin(user, _context))
            {
                return(BadRequest("notAllowed"));
            }

            try
            {
                _context.Add(new New
                {
                    title   = "Aviso de los administradores!",
                    message = message.message
                });

                _context.SaveChanges();
                List <NewMessage> retMessage = GetNews.getStandNews(true, _context);

                return(Ok(retMessage));
            }
            catch (Exception)
            {
                return(StatusCode(500));
            }
        }
Example #2
0
        public void YNET_News()
        {
            GetNews         gn  = new GetNews();
            List <string[]> lst = gn.Add_Ynet_News();
            Category        c   = new Category();

            c.Color      = "blue";
            c.Name       = "blue";
            c.CategoryId = 0;
            User u = new User();

            u.Email      = "*****@*****.**";
            u.Name       = "YNET";
            u.Password   = "";
            u.Permission = 0;

            foreach (string[] str in lst)
            {
                Article a = new Article();
                a.ArticleLink = str[2];
                a.Category    = c;
                a.Date        = DateTime.Now.ToString("M/d/yyyy");
                a.Description = str[1];
                a.ImageLink   = str[3];
                a.Title       = str[0];
                a.User        = u;
                a.NumOfLikes  = 0;
                this.Create(a);
            }
        }
Example #3
0
        /// <summary>
        /// Removes a new
        /// </summary>
        /// <param name="id">The id of the new</param>
        /// <returns>The IActionResult of the remove new action</returns>
        public IActionResult removeNew(string id)
        {
            User user = TokenUserManager.getUserFromToken(HttpContext, _context);

            if (!AdminPolicy.isAdmin(user, _context))
            {
                return(BadRequest("notAllowed"));
            }

            List <New> possibleNews = _context.News.Where(n => n.id.ToString() == id && n.userid == null).ToList();

            if (possibleNews.Count() != 1)
            {
                return(BadRequest());
            }

            try
            {
                _context.Remove(possibleNews.First());
                _context.SaveChanges();

                using (var scope = _scopeFactory.CreateScope())
                {
                    var dbContext = scope.ServiceProvider.GetRequiredService <ApplicationDBContext>();
                    List <NewMessage> retMessage = GetNews.getStandNews(true, dbContext);
                    return(Ok(retMessage));
                }
            }
            catch (Exception)
            {
                return(StatusCode(500));
            }
        }
Example #4
0
        public void YNET_News()
        {
            if (!Request.IsAuthenticated || User.Identity.GetPermission() == 0) // Checks if the user is logged in and has access
            {
                return;
            }

            GetNews         gn  = new GetNews();
            List <string[]> lst = gn.Add_Ynet_News();
            Category        c   = new Category();

            c.Color      = "blue";
            c.Name       = "blue";
            c.CategoryId = 0;

            var             userId = User.Identity.GetUserId();
            ApplicationUser user   = db.Users.SingleOrDefault(x => x.Id.Equals(userId));

            foreach (string[] str in lst)
            {
                Article a = new Article();
                a.ArticleLink = str[2];
                a.Category    = c;
                a.Date        = DateTime.Now;
                a.Description = str[1];
                a.ImageLink   = str[3];
                a.Title       = str[0];
                a.User        = user;
                a.NumOfLikes  = 0;
                a.Source      = "YNET";
                this.Create(a);
            }
        }
Example #5
0
        static void Timer(object o)
        {
            var dataReader = new GetNews();
            var news       = dataReader.Crawl();

            news.ForEach(Sender.Send);
        }
        public async Task <IEnumerable <Article> > Handle(GetNews request, CancellationToken cancellationToken)
        {
            var news = await _context.News.Include(a => a.Source)
                       .OrderByDescending(a => a.DatePublication).Take(30).ToListAsync(cancellationToken);

            return(news);
        }
        public async Task <IActionResult> SearchResult(string criteria, string language = "en", int currPage = 1)
        {
            if (criteria != null)
            {
                try
                {
                    var searchViewModel = new SearchViewModel();
                    searchViewModel.Criteria    = criteria;
                    searchViewModel.CurrentPage = currPage;
                    searchViewModel.Language    = language;
                    var articlesResponse = await GetNews.GetSearchResults(criteria, language);

                    searchViewModel.TotalNumPages = Calculations.TotalNumPages(articlesResponse.Count());
                    searchViewModel.Articles      = articlesResponse.Skip((currPage - 1) * 3).Take(3);
                    return(View(searchViewModel));
                }
                catch (InvalidOperationException)
                {
                    return(RedirectToAction("Error", $"Error", new { statusCode = "404", message = "Specified Language was not found!" }));
                }
                catch (ArgumentNullException)
                {
                    return(RedirectToAction("Error", "Error", new { statusCode = "503", message = "Server unavailable!" }));
                }
                catch (Exception)
                {
                    return(RedirectToAction("Error", "Error", new { statusCode = "400", message = "Something went wrong!" }));
                }
            }
            else
            {
                return(RedirectToAction("Index", "Home"));
            }
        }
        public async Task <IActionResult> Index(string country = "bg", int currPage = 1)
        {
            try
            {
                var topNewsViewModel = new TopNewsViewModel();
                var list             = await GetNews.TopNews(country.ToLower());

                topNewsViewModel.Articles      = list.Skip((currPage - 1) * 3).Take(3);
                topNewsViewModel.Country       = country.ToLower();
                topNewsViewModel.CurrentPage   = currPage;
                topNewsViewModel.TotalNumPages = Calculations.TotalNumPages(list.Count());

                return(View(topNewsViewModel));
            }
            catch (InvalidOperationException)
            {
                return(RedirectToAction("Error", $"Error", new { statusCode = "404", message = "Specified Country was not found!" }));
            }
            catch (ArgumentNullException)
            {
                return(RedirectToAction("Error", "Error", new { statusCode = "503", message = "Server unavailable!" }));
            }
            catch (Exception)
            {
                return(RedirectToAction("Error", "Error", new { statusCode = "400", message = "Something went wrong!" }));
            }
        }
Example #9
0
        public ActionResult YNET_News(int cat, int amount)
        {
            ViewBag.Errors = new List <String>();
            if (!Request.IsAuthenticated || User.Identity.GetPermission() == 0) // Checks if the user is logged in and has access
            {
                ViewBag.Errors.Add("Not logged in");
            }

            Category c = db.Categories.SingleOrDefault(x => x.CategoryId == cat);

            if (c == null)
            {
                ViewBag.Errors.Add("Not valid category.");
            }

            if (amount < 5 || amount > 50)
            {
                ViewBag.Errors.Add("not a valid amount");
            }

            if (ViewBag.Errors.Count > 0)
            {
                return(RedirectToAction("Index"));
            }

            GetNews         gn  = new GetNews();
            List <string[]> lst = gn.Add_Ynet_News();

            var             userId = User.Identity.GetUserId();
            ApplicationUser user   = db.Users.SingleOrDefault(x => x.Id.Equals(userId));

            int count = 0;

            foreach (string[] str in lst)
            {
                if (count++ >= amount)
                {
                    break;
                }

                Article a = new Article();
                a.ArticleLink = str[2];
                a.Category    = c;
                a.Date        = DateTime.Now;
                a.Description = str[1];
                a.ImageLink   = str[3];
                a.Title       = str[0];
                a.User        = user;
                a.NumOfLikes  = 0;
                a.Source      = "YNET";

                if (!db.Articles.Any(x => x.ArticleLink.Equals(a.ArticleLink))) // checks if the article is already exists
                {
                    Create(a);
                }
            }

            return(RedirectToAction("Index"));
        }
Example #10
0
        public async Task <List <GameNews> > GetNewsByID(int GameID)
        {
            SqlParameter gameParam = new SqlParameter {
                ParameterName = "@GameID", SqlDbType = SqlDbType.Int, Value = GameID
            };

            return(await GetNews.FromSql("Exec CoQ.GetNewsByID @GameID", gameParam)
                   .AsNoTracking()
                   .ToListAsync());
        }
Example #11
0
        public IActionResult NewsOverview(int pageNumber, string category, [FromServices] GetNews getNews)
        {
            if (pageNumber < 1)
            {
                return(RedirectToAction("NewsOverview", new { pageNumber = 1, category }));
            }

            var news      = string.IsNullOrEmpty(category) ? getNews.Do(PageSize, pageNumber) : getNews.Do(PageSize, pageNumber, category);
            int newsCount = string.IsNullOrEmpty(category) ? getNews.Count() : getNews.Count(category);

            int skipAmount = PageSize * (pageNumber - 1);
            int capacity   = skipAmount + PageSize;

            var newsVm = new List <NewsViewModel>();

            foreach (var singleNews in news)
            {
                newsVm.Add(new NewsViewModel
                {
                    Id          = singleNews.Id,
                    Title       = singleNews.Title,
                    Body        = singleNews.Body,
                    ImagePath   = singleNews.Image,
                    Created     = singleNews.Created,
                    Description = singleNews.Description,
                    Tags        = singleNews.Tags,
                    Category    = singleNews.Category
                });
            }

            newsVm = newsVm.OrderByDescending(x => x.Created).ToList();

            var viewModel = new NewsPageViewModel
            {
                News       = newsVm,
                PageNumber = pageNumber,
                Category   = category,
                PageCount  = (int)Math.Ceiling((double)newsCount / PageSize)
            };

            if (newsCount > capacity)
            {
                viewModel.NextPage = true;
            }

            return(View(viewModel));
        }
Example #12
0
        public void OnGet([FromServices] GetProducts getProducts, [FromServices] GetNews getNews)
        {
            News = getNews.Do().ToList();

            foreach (Shops shop in (Shops[])Enum.GetValues(typeof(Shops)))
            {
                var countSale = getProducts.CountProductOnSaleForShop(shop.ToString());

                if (countSale != 0)
                {
                    var shopVm = new ShopViewModel {
                        Name = shop.ToString(), SmallImagePath = $"{shop}-s.jpg", LargeImagePath = $"{shop}.jpg"
                    };
                    ProductsOnSale.Add(shop.ToString(), countSale);
                    Shops.Add(shopVm);
                }
            }
        }
Example #13
0
        private async Task <PdfPTable> AddContentToPDF(PdfPTable tableLayout, string country, string language, string type, string criteria)
        {
            IEnumerable <ArticleViewModel> list = new List <ArticleViewModel>();

            switch (type)
            {
            case "top":
                list = await GetNews.TopNews(country);

                break;

            case "search":
                list = await GetNews.GetSearchResults(criteria, language);

                break;

            default:
                break;
            }
            //var list = GetNews.TopNews(country);
            float[] headers = { 40, 60 };
            //Header Widths
            tableLayout.SetWidths(headers);   //Set the pdf headers
            tableLayout.WidthPercentage = 80; //Set the PDF File witdh percentage
                                              //Add Title to the PDF file at the top
            tableLayout.AddCell(new PdfPCell(new Phrase("Creating PDF file using iTextsharp", new Font(Font.FontFamily.HELVETICA, 13, 1, iTextSharp.text.BaseColor.BLUE)))
            {
                Colspan             = 4,
                Border              = 0,
                PaddingBottom       = 20,
                HorizontalAlignment = Element.ALIGN_CENTER
            });
            //Add header
            AddCellToHeader(tableLayout, "Article Title");
            AddCellToHeader(tableLayout, "Link to Article");
            //Add body
            foreach (var article in list)
            {
                AddCellToBody(tableLayout, article.Title);
                AddCellToBody(tableLayout, article.URL);
            }
            return(tableLayout);
        }
Example #14
0
        public object Get(GetNews request)
        {
            WebNews result = null;

            var context = TepWebContext.GetWebContext(PagePrivileges.EverybodyView);

            try {
                context.Open();
                context.LogInfo(this, string.Format("/news/{{Id}} GET Id='{0}'", request.Id));

                result = new WebNews(Terradue.Portal.Article.FromId(context, request.Id));

                context.Close();
            } catch (Exception e) {
                context.LogError(this, e.Message, e);
                context.Close();
                throw e;
            }
            return(result);
        }
Example #15
0
        public IActionResult Index([FromServices] GetNews getNews)
        {
            var news       = getNews.Do();
            var viewModels = new List <NewsViewModel>();

            foreach (var singleNews in news)
            {
                viewModels.Add(new NewsViewModel
                {
                    Id          = singleNews.Id,
                    Title       = singleNews.Title,
                    Body        = singleNews.Body,
                    ImagePath   = singleNews.Image,
                    Created     = singleNews.Created,
                    Description = singleNews.Description,
                    Tags        = singleNews.Tags,
                    Category    = singleNews.Category
                });
            }

            return(View(viewModels));
        }
Example #16
0
        /// <summary>
        /// Get the news for not logged users
        /// </summary>
        /// <returns>The IActionResult of the get the not logged news action</returns>
        /// See <see cref="Areas.Home.Models.NewMessage"/> to see the response structure
        public IActionResult GetStand()
        {
            bool isAdmin;

            try
            {
                User user = TokenUserManager.getUserFromToken(HttpContext, _context);
                isAdmin = AdminPolicy.isAdmin(user, _context);
            }
            catch (Exception)
            {
                isAdmin = false;
            }
            try
            {
                List <NewMessage> retMessage = GetNews.getStandNews(isAdmin, _context);

                return(Ok(retMessage));
            }
            catch (Exception)
            {
                return(StatusCode(500));
            }
        }
Example #17
0
 public List <NewsItem> Get(GetNews request)
 {
     return(new List <NewsItem>
     {
         new NewsItem
         {
             Created = DateTime.UtcNow.AddDays(-1),
             Title = "Our sales are up",
             Content = "Due to unprecedented good weather our sales are up 10% compared to the same period last year."
         },
         new NewsItem
         {
             Created = DateTime.UtcNow.AddDays(-3),
             Title = "The green challenge winner",
             Content = "Out green challenge contest has a winner: Dave Stewart from Accounting!"
         },
         new NewsItem
         {
             Created = DateTime.UtcNow.AddDays(-4),
             Title = "New bike version available",
             Content = "The best selling bike of last year has a new version."
         }
     });
 }
Example #18
0
 public List<NewsItem> Get(GetNews request)
 {
     return new List<NewsItem>
     {
         new NewsItem
         {
             Created = DateTime.UtcNow.AddDays(-1),
             Title = "Our sales are up",
             Content = "Due to unprecedented good weather our sales are up 10% compared to the same period last year."
         },
         new NewsItem
         {
             Created = DateTime.UtcNow.AddDays(-3),
             Title = "The green challenge winner",
             Content = "Out green challenge contest has a winner: Dave Stewart from Accounting!"
         },
         new NewsItem
         {
             Created = DateTime.UtcNow.AddDays(-4),
             Title = "New bike version available",
             Content = "The best selling bike of last year has a new version."
         }
     };
 }
        /// <summary>
        /// Get the news for auhtorized users
        /// </summary>
        /// <returns>The IActionResult of the get authorized news action</returns>
        /// See <see cref="Areas.Home.Models.NewMessage"/> to see the response structure
        public IActionResult getAuth()
        {
            User user = TokenUserManager.getUserFromToken(HttpContext, _context);

            if (!user.open)
            {
                return(BadRequest(new { error = "YoureBanned" }));
            }
            if (AdminPolicy.isAdmin(user, _context))
            {
                return(BadRequest("notAllowed"));
            }

            try
            {
                List <NewMessage> retMessage = GetNews.getAuthNews(user.id, _context);

                return(Ok(retMessage));
            }
            catch (Exception)
            {
                return(StatusCode(500));
            }
        }
Example #20
0
        public async static Task <NewsContent> oneNews(string category, string site, int pp)
        {
            if (sites.Count == 0)
            {
                addElements();
            }
            var url = site + category + "/feed/";

            if (category != ekonomija)
            {
                if (site.Equals("https://a1on.mk/category/"))
                {
                    if (category.Equals("makedonija"))
                    {
                        url = site + "macedonia" + "/feed/";
                    }
                    if (category.Equals("svet"))
                    {
                        url = site + "world" + "/feed/";
                    }
                    if (category.Equals("kultura"))
                    {
                        url = site + "culture" + "/feed/";
                    }
                }
                if (site.Equals("https://plusinfo.mk/category/"))
                {
                    if (category.Equals("makedonija"))
                    {
                        url = site + "makedoni-a" + "/feed/";
                    }
                    if (category.Equals("kultura"))
                    {
                        url = site + "bs-kultura" + "/feed/";
                    }
                    if (category.Equals("sport"))
                    {
                        url = site + "bs-sport" + "/feed/";
                    }
                }
                if (site.Equals("https://a1on.mk/category/"))
                {
                    if (category.Equals("sport"))
                    {
                        url = site + "sport1" + "/feed/";                 //fixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx not working +/region1
                    }
                }
                if (site.Equals(PECAT))
                {
                    if (category.Equals(svet))
                    {
                        url = site + "planeta" + "/feed/";
                    }
                }
                if (site.Equals(TV21))
                {
                    if (category.Equals(kultura))
                    {
                        url = site + "magazin/kultura-magazin" + "/feed/";
                    }
                }
                if (site.Equals(NOVAMAK))
                {
                    if (category.Equals(kultura))
                    {
                        url = site + "zivot" + "/feed/";
                    }
                }
                if (site.Equals(KANAL5))
                {
                    if (category.Equals(mak))
                    {
                        url = site + "2";
                    }
                    if (category.Equals(svet))
                    {
                        url = site + "3";
                    }
                    if (category.Equals(kultura))
                    {
                        url = site + "7";
                    }
                    if (categories.Equals(sport))
                    {
                        url = site + "8";
                    }
                }
                if (site.Equals(BRIF))
                {
                    if (category.Equals(kultura))
                    {
                        url = site + "magazin" + "/feed/";
                    }
                }
            }
            else
            {
                url = site;
            }
            GetNews gn = new GetNews(url, false);
            Random  rn = new Random();

            try
            {
                var s = await gn.news(rn.Next(0, 2) + pp);

                if (s == null)
                {
                    throw new Exception();
                }
                s.category = category;
                s.site     = site;
                return(s);
            }catch (Exception e)
            {
                if (!site.Equals(A1ON))
                {
                    if (category != ekonomija)
                    {
                        return(await oneNews(category, A1ON, 2));
                    }
                    else
                    {
                        return(await oneNews(category, economyA1ON, 2));
                    }
                }
                else
                {
                    return(null);
                }
            }
        }
Example #21
0
        public async static Task <List <NewsContent> > oneNewsOrdered(string category, string site)
        {
            if (sites.Count == 0)
            {
                addElements();
            }
            var url = site + category + "/feed/";

            if (category != ekonomija)
            {
                if (site.Equals("https://a1on.mk/category/"))
                {
                    if (category.Equals("makedonija"))
                    {
                        url = site + "macedonia" + "/feed/";
                    }
                    if (category.Equals("svet"))
                    {
                        url = site + "world" + "/feed/";
                    }
                    if (category.Equals("kultura"))
                    {
                        url = site + "culture" + "/feed/";
                    }
                }
                if (site.Equals("https://plusinfo.mk/category/"))
                {
                    if (category.Equals("makedonija"))
                    {
                        url = site + "makedoni-a" + "/feed/";
                    }
                    if (category.Equals("kultura"))
                    {
                        url = site + "bs-kultura" + "/feed/";
                    }
                    if (category.Equals("sport"))
                    {
                        url = site + "bs-sport" + "/feed/";
                    }
                }
                if (site.Equals("https://a1on.mk/category/"))
                {
                    if (category.Equals("sport"))
                    {
                        url = site + "sport1" + "/feed/";                 //fixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx not working +/region1
                    }
                }
                if (site.Equals(PECAT))
                {
                    if (category.Equals(svet))
                    {
                        url = site + "planeta" + "/feed/";
                    }
                }
                if (site.Equals(TV21))
                {
                    if (category.Equals(kultura))
                    {
                        url = site + "magazin/kultura-magazin" + "/feed/";
                    }
                }
                if (site.Equals(NOVAMAK))
                {
                    if (category.Equals(kultura))
                    {
                        url = site + "zivot" + "/feed/";
                    }
                }
                if (site.Equals(KANAL5))
                {
                    if (category.Equals(mak))
                    {
                        url = site + "2";
                    }
                    if (category.Equals(svet))
                    {
                        url = site + "3";
                    }
                    if (category.Equals(kultura))
                    {
                        url = site + "7";
                    }
                    if (categories.Equals(sport))
                    {
                        url = site + "8";
                    }
                }
                if (site.Equals(BRIF))
                {
                    if (category.Equals(kultura))
                    {
                        url = site + "magazin" + "/feed/";
                    }
                }
            }
            else
            {
                url = site;
            }
            GetNews gn = new GetNews(url, false);

            try
            {
                var s = await gn.news();

                try
                {
                    foreach (var pipi in s)
                    {
                        pipi.category = category;
                        pipi.site     = site;
                    }
                }catch (Exception e)
                {
                    return(null);
                }
                return(s);
            }
            catch (Exception e)
            {
                return(null);
            }
        }