Esempio n. 1
0
 public UserRatedMessagedEventArgs(ChatUser user, ChatUserMessage message, MessageRating rating, MessageRating previousRating)
 {
     User           = user;
     Message        = message;
     Rating         = rating;
     PreviousRating = previousRating;
 }
Esempio n. 2
0
        public void Test_CreateUpdateDelete()
        {
            IUserBasic userBasic = Test_WorkmateMembershipProvider.CreateUser(this.DataStore, Workmate.Components.InstanceContainer.ApplicationSettings, this.Application, this.DummyDataManager);

            MessageBoard       messageBoard       = Test_MessageBoards.Create(this.DataStore, Workmate.Components.InstanceContainer.ApplicationSettings, this.Application, this.Random);
            MessageBoardThread messageBoardThread = Test_MessageBoardThreads.Create(this.DataStore, Workmate.Components.InstanceContainer.ApplicationSettings, this.Application, messageBoard, this.Random);
            Message            message            = Test_Messages.Create(this.DataStore, Workmate.Components.InstanceContainer.ApplicationSettings, this.Application, userBasic, messageBoardThread, this.Random);

            MessageRatingManager messageRatingManager = new MessageRatingManager(this.DataStore);

            BaseRatingInfo baseRatingInfo;
            int            totalThumbsUp = 0;

            for (int i = 0; i < 10; i++)
            {
                userBasic = Test_WorkmateMembershipProvider.CreateUser(this.DataStore, Workmate.Components.InstanceContainer.ApplicationSettings, this.Application, this.DummyDataManager);

                MessageRating record = new MessageRating(userBasic, message, DebugUtility.GetRandomEnum <MessageRatingType>(this.Random));

                BusinessObjectActionReport <RatingDataRepositoryActionStatus> report = messageRatingManager.Create(record, out baseRatingInfo);
                Assert.AreEqual(RatingDataRepositoryActionStatus.Success, report.Status);

                totalThumbsUp += (short)record.MessageRatingType;
                Assert.AreEqual(totalThumbsUp, baseRatingInfo.GetTotalThumbsUp());
                Assert.AreEqual(i + 1 - totalThumbsUp, baseRatingInfo.GetTotalThumbsDown());

                record = new MessageRating(userBasic, message, DebugUtility.GetRandomEnum <MessageRatingType>(this.Random, record.MessageRatingType));
                messageRatingManager.CreateOrUpdateExisting(record, out baseRatingInfo);
                Assert.AreEqual(RatingDataRepositoryActionStatus.Success, report.Status);

                totalThumbsUp += record.MessageRatingType == MessageRatingType.ThumbsUp ? 1 : -1;
                Assert.AreEqual(totalThumbsUp, baseRatingInfo.GetTotalThumbsUp());
                Assert.AreEqual(i + 1 - totalThumbsUp, baseRatingInfo.GetTotalThumbsDown());
            }

            Test_MessageBoardThreads.Delete(this.DataStore, messageBoardThread);

            MessageBoardThreadManager messageBoardThreadManager = new MessageBoardThreadManager(this.DataStore);
            MessageManager            messageManager            = new MessageManager(this.DataStore);

            Assert.IsNull(messageBoardThreadManager.GetMessageBoardThread(messageBoardThread.MessageBoardThreadId));
            Assert.IsNull(messageManager.GetMessage(message.MessageId));
            Assert.IsEmpty(messageRatingManager.GetAllRatingsForMessage(message));

            Test_MessageBoards.Delete(this.DataStore, messageBoard);
        }
Esempio n. 3
0
        public async Task SetRating(string postId, string userEmail, int type)
        {
            Account _account = _unitOfWork.Account.GetByEmail(userEmail);

            if (_account != null)
            {
                MessageRating rating = _unitOfWork.Message.GetMessageRatingById(postId, _account);
                if (rating.Account == null)
                {
                    _unitOfWork.Message.CreateNewRating(postId, (MessageRatingType)type, _account);
                }
                else if (rating.Type == (MessageRatingType)type)
                {
                    _unitOfWork.Message.removeRating(postId, _account);
                }
                else if (rating.Type != (MessageRatingType)type)
                {
                    _unitOfWork.Message.removeRating(postId, _account);
                    _unitOfWork.Message.CreateNewRating(postId, (MessageRatingType)type, _account);
                }
            }
        }
Esempio n. 4
0
        internal void ChangeRatingForUser(ChatUser user, MessageRating rating, out MessageRating previousRating)
        {
            switch (rating)
            {
            case MessageRating.Neutral:
                if (VotesAgainst.Contains(user))
                {
                    previousRating = MessageRating.ThumbsDown;
                    VotesAgainst.Remove(user);
                }
                else if (VotesFor.Contains(user))
                {
                    previousRating = MessageRating.ThumbsUp;
                    VotesFor.Remove(user);
                }
                else
                {
                    previousRating = MessageRating.Neutral;
                }
                break;

            case MessageRating.ThumbsUp:
                if (VotesAgainst.Contains(user))
                {
                    previousRating = MessageRating.ThumbsDown;
                    VotesAgainst.Remove(user);
                    VotesFor.Add(user);
                }
                else if (!VotesFor.Contains(user))
                {
                    previousRating = MessageRating.Neutral;
                    VotesFor.Add(user);
                }
                else
                {
                    previousRating = MessageRating.ThumbsUp;
                }
                break;

            case MessageRating.ThumbsDown:
                if (VotesFor.Contains(user))
                {
                    previousRating = MessageRating.ThumbsUp;
                    VotesFor.Remove(user);
                    VotesAgainst.Add(user);
                }
                else if (!VotesAgainst.Contains(user))
                {
                    previousRating = MessageRating.Neutral;
                    VotesAgainst.Add(user);
                }
                else
                {
                    previousRating = MessageRating.ThumbsDown;
                }
                break;

            default:
                previousRating = MessageRating.Neutral;
                break;
            }
        }
Esempio n. 5
0
 /// <summary>
 /// Occurs when a user rates a message
 /// </summary>
 /// <param name="user">The user that is rating the message</param>
 /// <param name="message">The message that is being rated</param>
 /// <param name="rating">The rating that is being given</param>
 protected virtual void OnUserRatedMessage(ChatUser user, ChatUserMessage message, MessageRating rating, MessageRating previousRating)
 {
     //Debug.WriteLine( "User: {0}, rated message {1}", user, rating.ToString() );
 }
Esempio n. 6
0
 /// <summary>
 /// Rate a message
 /// </summary>
 /// <param name="message"></param>
 /// <param name="rating"></param>
 public void RateMessage(ChatUserMessage message, MessageRating rating)
 {
     _chatProxy.RateMessage(message, rating);
 }
Esempio n. 7
0
 public BusinessObjectActionReport <DataRepositoryActionStatus> Delete(MessageRating messageRating)
 {
     return(_CMSContentRatingManager.Delete(messageRating.CMSContentRating));
 }
Esempio n. 8
0
 public BusinessObjectActionReport <RatingDataRepositoryActionStatus> CreateOrUpdateExisting(MessageRating messageRating, out BaseRatingInfo baseRatingInfo)
 {
     return(_CMSContentRatingManager.Create(messageRating.CMSContentRating, true, false, out baseRatingInfo));
 }
Esempio n. 9
0
 public BusinessObjectActionReport <RatingDataRepositoryActionStatus> Create(MessageRating messageRating, out BaseRatingInfo baseRatingInfo)
 {
     return(this.CreateOrUpdateExisting(messageRating, out baseRatingInfo));
 }