Я предполагаю, что вы используете источник событий, и в этом случае, если вы разрешите службе запросов / обработчикам событий вызывать соответствующие события, это будет довольно легко решить.
Для ваших сообщений / элементов;при обработке определенных событий создания ваших элементов либо добавьте к существующим, либо создайте дополнительные обработчики событий, чтобы сохранить в сообщения модель чтения со статусом new и соответствующую информацию об элементе.
Как часть вашего входа в систему пользователя, я не понимаю, почему вы не можете вызвать событие входа в систему пользователя (из службы безопасности / запроса в зависимости от того, какваша реализующая аутентификация), чтобы сказать, что пользователь вошел в систему. Обработчик событий может перехватить это и записать отметку времени последнего входа в систему для определенной модели чтения последнего входа пользователя.
Кроме того, пользователь зарегистрировался-в обработчике событий потребуется обновить все новые сообщения (для этого пользователя) до непрочитанного состояния.Видя, как мы меняем статус сообщений при входе пользователя в систему, вам все еще нужно сохранять метку времени последнего входа в систему?
Для вашей метки времени последнего доступа, возможно, вы могли бы просто включить ее в свой запросСлужба как запросы для ваших различных элементов завершена.Вызовите событие, завершенное запросом, с идентификатором элемента / информацией о типе.