示例#1
0
        private void TryRaiseIndicateUserIsTypingMessage(string eventName, JObject jsonObjectEvent)
        {
            var json   = jsonObjectEvent.ToString();
            var events = _jsonObjectConverter.Deserialize <AccountActivityUserIsTypingMessageDTO>(json);

            events.TypingEvents.ForEach(typingEvent =>
            {
                var activityEvent = new AccountActivityEvent
                {
                    AccountUserId = AccountUserId,
                    EventDate     = typingEvent.CreatedAt,
                    Json          = json
                };

                events.UsersById.TryGetValue(typingEvent.SenderId.ToString(), out var senderDTO);
                events.UsersById.TryGetValue(typingEvent.Target.RecipientId.ToString(), out var recipientDTO);

                var sender    = _factories.CreateUser(senderDTO);
                var recipient = _factories.CreateUser(recipientDTO);

                var eventArgs = new UserIsTypingMessageEvent(activityEvent, sender, recipient);

                this.Raise(UserIsTypingMessage, eventArgs);

                if (eventArgs.InResultOf == UserIsTypingMessageInResultOf.Unknown)
                {
                    this.Raise(EventKnownButNotFullySupportedReceived, new EventKnownButNotSupported(json, eventArgs));
                }
            });
        }
 private void UserIsTypingMessage(object sender, UserIsTypingMessageEvent e)
 {
     Console.WriteLine($">>> User {e.TypingUser} is typing a message to {e.TypingTo}...");
 }