Beispiel #1
0
        public ActionResult DislikeNewsItem(string newsid, string userid)
        {
            if (Session["UserId"] != null)
            {
                //Initalize dbContext
                var dbContext = new rlnews.DAL.RlnewsDb();

                //Create newsitem object and add to dislike total
                var dbNews = dbContext.NewsItems.Find(Int32.Parse(newsid));

                dbNews.DislikeTotal = dbNews.DislikeTotal + 1;

                //Create a dislike activity object and insert it into the database
                var dbActvity = new rlnews.DAL.Models.Activity
                {
                    NewsId          = Int32.Parse(newsid),
                    UserId          = Int32.Parse(Session["UserId"].ToString()),
                    ActivityType    = "Dislike",
                    ActivityDate    = DateTime.Now,
                    ActivityContent = Session["Username"] + " disliked a news article"
                };

                dbContext.Activity.Add(dbActvity);

                dbContext.SaveChanges();

                //Return the new score for this news item
                return(Json(new { success = true, message = dbNews.LikeTotal - dbNews.DislikeTotal }, JsonRequestBehavior.AllowGet));
            }

            return(null);
        }
Beispiel #2
0
        public void AddViewToNewsItem(string newsid)
        {
            var dbContext = new rlnews.DAL.RlnewsDb();

            var dbObj = dbContext.NewsItems.Find(Int32.Parse(newsid));

            dbObj.Views = dbObj.Views + 1;

            dbContext.SaveChanges();
        }
Beispiel #3
0
        public ActionResult Settings(UserViewModel settingsForm)
        {
            var teamList = new UserViewModel()
            {
                TeamList = TeamList()
            };

            if (ModelState.IsValid)
            {
                using (var dbContext = new rlnews.DAL.RlnewsDb())
                {
                    //Check email address and username are unique
                    var takenEmail    = dbContext.Users.FirstOrDefault(x => x.Email == settingsForm.Email);
                    var takenUsername = dbContext.Users.FirstOrDefault(x => x.Username == settingsForm.Username);

                    if (takenEmail != null)
                    {
                        ModelState.AddModelError("", "Sorry - Email address already registered to an account.");
                    }

                    if (takenUsername != null)
                    {
                        ModelState.AddModelError("", "Sorry - Username has already been taken.");
                    }

                    //If validation is passed register user
                    if (ModelState.IsValid)
                    {
                        var dbUser = new rlnews.DAL.Models.User();

                        var salt       = GenerateSalt(10);
                        var hashedPass = GenerateHash(settingsForm.Password, salt);

                        dbUser.Username = settingsForm.Username;
                        dbUser.Email    = settingsForm.Email;
                        dbUser.Password = hashedPass;
                        dbUser.PassSalt = salt;
                        dbUser.TeamName = settingsForm.TeamName;

                        dbContext.Users.Add(dbUser);

                        dbContext.SaveChanges();

                        ModelState.Clear();

                        ViewBag.Message = "Thank you " + settingsForm.Username + ", your account has been successfully registered.";
                    }
                }
            }

            return(View(teamList));
        }
Beispiel #4
0
        /// <summary>
        /// Inserts BBC News rss feed data into the database
        /// </summary>
        private void InsertRssData()
        {
            Distance distance = new Distance();

            try
            {
                // create database context
                var dbContext = new rlnews.DAL.RlnewsDb();

                foreach (var newsItem in _feeds)
                {
                    if (IsPostNew(newsItem.PubDateTime))
                    {
                        string clusterType = null;
                        int    parentId    = 0;

                        DateTime nowMinus24 = DateTime.Now;
                        DateTime now        = DateTime.Now;
                        nowMinus24 = nowMinus24.AddHours(-24);

                        if (newsItem.PubDateTime > nowMinus24 && newsItem.PubDateTime <= now)
                        {
                            parentId = distance.CheckRelated(newsItem.Title);
                        }

                        if (parentId > 0)
                        {
                            clusterType = "Child";
                        }
                        else
                        {
                            clusterType = "Parent";
                        }

                        //Increment import counter
                        _importCount++;

                        //create  news item object to add to database
                        var dbObj = new rlnews.DAL.Models.NewsItem
                        {
                            Title       = _validate.TrimNewsHtml(newsItem.Title),
                            SourceName  = newsItem.SourceName,
                            Description = _validate.TrimNewsHtml(newsItem.Description),
                            SourceUrl   = newsItem.SourceUrl,
                            ImageUrl    = newsItem.ImageUrl,
                            PubDateTime = newsItem.PubDateTime,
                            Views       = 0,
                            ClusterType = clusterType
                        };

                        dbContext.NewsItems.Add(dbObj);

                        //Save database changes
                        dbContext.SaveChanges();

                        if (parentId > 0)
                        {
                            //Create related news object to add the database
                            var dbRelated = new rlnews.DAL.Models.RelatedNews
                            {
                                ParentNewsId = parentId,
                                ChildNewsId  = dbObj.NewsId
                            };

                            dbContext.RelatedNews.Add(dbRelated);

                            //Save database changes
                            dbContext.SaveChanges();
                        }
                    }
                }

                if (_importCount == 0)
                {
                    _importMessage = "No new posts found from The Guardian.";
                }
                else
                {
                    _importMessage = "Successfully imported '" + _importCount + "' news items from The Guardian.";
                }
            }
            catch (Exception ex)
            {
                _importMessage = "The Guardian import failed: " + ex;
            }
        }