Esempio n. 1
0
 void AddViewedMessage(ViewedMessage viewedMessage)
 {
     this.viewedMessagesById.Add(viewedMessage.MessageId, viewedMessage);
     if (viewedMessage.Read)
     {
         ++this.readMessageCount;
     }
 }
Esempio n. 2
0
        void RemoveViewedMessage(ViewedMessage viewedMessage)
        {
            if (!this.viewedMessagesById.Remove(viewedMessage.MessageId))
            {
                throw new KeyNotFoundException();
            }

            if (viewedMessage.Read)
            {
                --this.readMessageCount;
            }
        }
Esempio n. 3
0
        void UpdateViewWithMessage(YamsterMessage message)
        {
            bool shouldBeInView = false;

            if (CompiledFunc != null)
            {
                var executionContext = new YqlExecutionContext(this.appContext);
                executionContext.Message = message;
                shouldBeInView           = CompiledFunc(executionContext);
            }

            ViewedMessage viewedMessage = null;
            bool          isInView      = viewedMessagesById.TryGetValue(message.MessageId, out viewedMessage);

            bool statisticsChanged = false;

            if (isInView)
            {
                if (!shouldBeInView)
                {
                    this.RemoveViewedMessage(viewedMessage);
                    NotifyViewChanged(YamsterViewChangeType.ModelLeaveView, message);

                    // TotalItemCount changed
                    statisticsChanged = true;
                }
                else
                {
                    if (message.Read != viewedMessage.Read)
                    {
                        this.readMessageCount += message.Read ? +1 : -1;
                        viewedMessage.Read     = message.Read;
                        statisticsChanged      = true;
                    }
                }
            }
            else
            {
                if (shouldBeInView)
                {
                    AddViewedMessage(new ViewedMessage(message));
                    NotifyViewChanged(YamsterViewChangeType.ModelEnterView, message);

                    // TotalItemCount changed
                    statisticsChanged = true;
                }
            }

            if (statisticsChanged)
            {
                NotifyViewChanged(YamsterViewChangeType.StatisticsChanged, null);
            }
        }
Esempio n. 4
0
 /// <summary>
 /// Adds a student Viewed Message.
 /// </summary>
 /// <param name="alertId">The messageId.</param>
 /// <param name="studentId">The studentId.</param>
 /// <returns></returns>
 public void AddStudentViewedMessage(int messageId, int studentId)
 {
     try
     {
         ViewedMessage studentViewedMessage = ObjectMapper.Map <StudentViewedMessageViewModel, Model.Entities.ViewedMessage>(StudentMessageViewModelFactory.CreateStudentViewedMessageModel(messageId, studentId));
         StudentViewedMessageManager.Add(studentViewedMessage);
     }
     catch (Exception ex)
     {
         ExceptionManager.HandleException(ex, PolicyNameType.ExceptionReplacing);
     }
 }