public void SetTop3ReactionCounts(IHaveReactions item)
        {
            var reactions = new List <ReactionCounter>();

            if (item.Reactions != null)
            {
                var reactionTypes = RepositoryContext.ReactionTypes.ToList();


                foreach (ReactionType rt in reactionTypes)
                {
                    // Create a counter for each reaction type
                    ReactionCounter counter = new ReactionCounter()
                    {
                        RType = rt,
                        Count = item.Reactions
                                .Count(i => i.TypeId.Equals(rt.TypeId))
                    };

                    // Add all counts of reaction types
                    reactions.Add(counter);
                }
            }

            // Assign top 3 of top reactions
            item.ReactionCounts = reactions
                                  .OrderByDescending(r => r.Count)
                                  .Take(3)
                                  .ToList();
        }
        private void SetReferenceKeys(React reaction)
        {
            IHaveReactions reactible =
                reaction.Article != null ?
                (IHaveReactions)reaction.Article :
                reaction.Comment;

            // AccountId
            reaction.AccountId = reaction.Account.Id;

            // TypeId
            reaction.TypeId   = reaction.Reaction.TypeId;
            reaction.Reaction = null;

            // Slug, BlogId, Version
            if (reactible is Article)
            {
                SetArticleReferenceKey(reaction);
                //reaction.Article = null;
            }
            // CommentId, Revision
            else if (reactible is Comment)
            {
                SetCommentRefenceKeys(reaction);
            }
        }
 public void AnAccountCanReactOnArticle()
 {
     Account        account   = Manu;
     IHaveReactions reactible = ArticleZero;
     React          reacted   = Wrapper.React.React(NullNormalized <React>(r =>
     {
         r.Article  = ArticleZero;
         r.Account  = Manu;
         r.Reaction = new ReactionType {
             TypeId = CONFUSED
         };
     }));
 }