Пример #1
0
 /// <summary>
 /// Method to add a news item to favourite DB
 /// </summary>
 /// <param name="favNews"></param>
 /// <returns></returns>
 public FavouriteNews AddFavorite(FavouriteNews favNews)
 {
     try
     {
         if (!ctx.FavouriteNews.Any(n => n.Title.Equals(favNews.Title) && n.Description.Equals(favNews.Description) && n.ImageURL.Equals(favNews.ImageURL)))
         {
             FavouriteNews news = new FavouriteNews();
             news.Title       = favNews.Title;
             news.ImageURL    = favNews.ImageURL;
             news.Description = favNews.Description;
             ctx.FavouriteNews.Add(news);
             ctx.SaveChanges();
             return(news);
         }
         else
         {
             //already exists in the favourites DB
             return(null);
         }
     }
     catch
     {
         throw new ArgumentNullException("FavouriteNews");
     }
 }
Пример #2
0
        public void TestPostFavoriteNews()
        {
            var           favController = new FavouriteNewsController(_repo);
            FavouriteNews testNews      = new FavouriteNews();
            int           topId         = 0;

            testNews.Id          = topId + 1;
            testNews.Title       = "Test Title";
            testNews.Description = "Test description";
            testNews.ImageURL    = " Test URL";
            IActionResult result   = favController.Post(testNews);
            var           okResult = result as StatusCodeResult;

            Assert.Equal(200, okResult.StatusCode);
        }
Пример #3
0
        public void TestDeleteFavoriteNews()
        {
            var           favController = new FavouriteNewsController(_repo);
            FavouriteNews testNews      = new FavouriteNews();
            int           topId         = 0;

            testNews.Id          = topId + 1;
            testNews.Title       = "Test Title";
            testNews.Description = "Test description";
            testNews.ImageURL    = " Test URL";
            IActionResult result   = favController.Post(testNews);
            var           okResult = result as StatusCodeResult;

            if (okResult.StatusCode == 200)
            {
                topId  = _context.FavouriteNews.Select(f => f.Id).FirstOrDefault();
                result = favController.Delete(topId);
                Assert.Equal(200, okResult.StatusCode);
            }
        }
Пример #4
0
        public void TestPostFavoriteNews_Negative()
        {
            var           favController = new FavouriteNewsController(_repo);
            FavouriteNews testNews      = new FavouriteNews();
            int           topId         = 0;

            testNews.Id          = topId + 1;
            testNews.Title       = "Test Title";
            testNews.Description = "Test description";
            testNews.ImageURL    = " Test URL";
            IActionResult result   = favController.Post(testNews);
            var           okResult = result as StatusCodeResult;

            if (okResult.StatusCode == 200)
            {
                //save once more
                result   = favController.Post(testNews);
                okResult = result as StatusCodeResult;
                Assert.Equal(409, okResult.StatusCode); //already exists
            }
        }
Пример #5
0
 public IActionResult Post([FromBody] FavouriteNews news)
 {
     try
     {
         var result = _iRepo.AddFavorite(news);
         if (result != null)
         {
             //success
             return(new StatusCodeResult((int)HttpStatusCode.OK));
         }
         else
         {
             //Title already exists
             return(new StatusCodeResult((int)HttpStatusCode.Conflict));
         }
     }
     catch
     {
         //Bad request
         return(new StatusCodeResult((int)HttpStatusCode.BadRequest));
     }
 }
Пример #6
0
        /// <summary>
        /// Method to get all favourites
        /// </summary>
        /// <returns></returns>

        public IEnumerable <FavouriteNews> GetFavorites()
        {
            try
            {
                var favNews = new List <FavouriteNews>();
                var news    = ctx.FavouriteNews.ToList();
                foreach (var item in news)
                {
                    FavouriteNews fNews = new FavouriteNews();
                    fNews.Id          = item.Id;
                    fNews.Title       = item.Title;
                    fNews.ImageURL    = item.ImageURL;
                    fNews.Description = item.Description;
                    favNews.Add(fNews);
                }

                return(favNews);
            }
            catch
            {
                throw new ArgumentNullException("FavouriteNews");
            }
        }