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 })); }
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 }); }