コード例 #1
0
        public ActionResult Reaction(CreateReactionModel model, CurrentUserInformation currentUser)
        {
            Term word = Session.Load <Term>(model.TermId);

            Reaction reaction = new Reaction();

            reaction.Id         = Guid.NewGuid();
            reaction.CreatedOn  = DateTime.UtcNow;
            reaction.Name       = model.Name;
            reaction.Reason     = model.Reason;
            reaction.Title      = model.Title;
            reaction.IsPositive = model.IsPositive;

            ActionType forUserFeed = ActionType.AddGoodReaction;

            if (reaction.IsPositive)
            {
                word.UpVotes = word.UpVotes + 1;
            }
            else
            {
                word.DownVotes = word.DownVotes + 1;
                forUserFeed    = ActionType.AddBadReaction;
            }

            if (word.Reactions == null)
            {
                word.Reactions = new List <Reaction>();
            }
            word.Reactions.Add(reaction);

            if (currentUser.IsAuthenticated)
            {
                reaction.Name           = currentUser.Name;
                reaction.SharedByUserId = currentUser.Id;
                var user = Session.Load <User>(currentUser.Id);
                user.ReputationPoints += ActionPoints.AddReaction;

                if (user.ActionFeed == null)
                {
                    user.ActionFeed = new List <Web.Models.Action>();
                }
                user.ActionFeed.Add(new Web.Models.Action()
                {
                    Time = DateTime.UtcNow, Type = forUserFeed, ReactionIdContext = reaction.Id, TermIdContext = model.TermId
                });

                Session.Store(user);
            }

            Session.Store(word);
            Session.SaveChanges();
            return(RedirectToAction("Detail", new { slug = word.Slug }));
        }
コード例 #2
0
        public ActionResult Reaction(CreateReactionModel model, CurrentUserInformation currentUser)
        {
            Term word = Session.Load<Term>(model.TermId);

            Reaction reaction = new Reaction();
            reaction.Id = Guid.NewGuid();
            reaction.CreatedOn = DateTime.UtcNow;
            reaction.Name = model.Name;
            reaction.Reason = model.Reason;
            reaction.Title = model.Title;
            reaction.IsPositive = model.IsPositive;

            ActionType forUserFeed = ActionType.AddGoodReaction;

            if (reaction.IsPositive)
            {
                word.UpVotes = word.UpVotes + 1;
            }
            else
            {
                word.DownVotes = word.DownVotes + 1;
                forUserFeed = ActionType.AddBadReaction;
            }

            if (word.Reactions == null) word.Reactions = new List<Reaction>();
            word.Reactions.Add(reaction);

            if (currentUser.IsAuthenticated)
            {
                reaction.Name = currentUser.Name;
                reaction.SharedByUserId = currentUser.Id;
                var user = Session.Load<User>(currentUser.Id);
                user.ReputationPoints += ActionPoints.AddReaction;

                if (user.ActionFeed == null) user.ActionFeed = new List<Web.Models.Action>();
                user.ActionFeed.Add(new Web.Models.Action() { Time = DateTime.UtcNow, Type = forUserFeed, ReactionIdContext = reaction.Id, TermIdContext = model.TermId });

                Session.Store(user);
            }

            Session.Store(word);
            Session.SaveChanges();
            return RedirectToAction("Detail", new { slug = word.Slug });
        }