public MessageUnsentEventArgs(MessengerUser user, MessengerMessage message, MessengerThread thread, DateTime at)
 {
     User    = user;
     Message = message;
     Thread  = thread;
     At      = at;
 }
예제 #2
0
 public MessagesDeliveredEventArgs(MessengerUser user, IReadOnlyList <MessengerMessage> messages, MessengerThread thread, DateTime at)
 {
     User     = user;
     Messages = messages;
     Thread   = thread;
     At       = at;
 }
예제 #3
0
        private void OnTyping(FB_TypingStatus typingEvent)
        {
            var user   = GetUser(typingEvent.author);
            var thread = new MessengerThread(typingEvent.thread);

            OnTyping(user, thread, typingEvent.status);
        }
예제 #4
0
        private void OnMessagesDelivered(FB_MessagesDelivered messagesDeliveredEvent)
        {
            var user     = GetUser(messagesDeliveredEvent.author);
            var messages = messagesDeliveredEvent.messages?.Select(m => new MessengerMessage(m)).ToImmutableList();
            var thread   = new MessengerThread(messagesDeliveredEvent.thread);
            var at       = messagesDeliveredEvent.at.FromUnixEpoch(true);

            OnMessagesDelivered(user, messages, thread, at);
        }
예제 #5
0
        private void OnMessageUnsent(FB_UnsendEvent unsendEvent)
        {
            var user    = GetUser(unsendEvent.author);
            var message = new MessengerMessage(unsendEvent.message);
            var thread  = new MessengerThread(unsendEvent.thread);
            var at      = DateTimeOffset.FromUnixTimeSeconds(unsendEvent.at).DateTime;

            OnMessageUnsent(user, message, thread, at);
        }
예제 #6
0
 public TypingEventArgs(MessengerUser user, MessengerThread thread, bool isTyping)
 {
     User     = user;
     Thread   = thread;
     IsTyping = isTyping;
 }
예제 #7
0
        protected virtual void OnTyping(MessengerUser user, MessengerThread thread, bool isTyping)
        {
            var args = new TypingEventArgs(user, thread, isTyping);

            Typing?.Invoke(this, args);
        }
예제 #8
0
        protected virtual void OnMessagesDelivered(MessengerUser user, IReadOnlyList <MessengerMessage> messages, MessengerThread thread, DateTime at)
        {
            var args = new MessagesDeliveredEventArgs(user, messages, thread, at);

            MessagesDelivered?.Invoke(this, args);
        }
예제 #9
0
        protected virtual void OnMessageUnsent(MessengerUser user, MessengerMessage message, MessengerThread thread, DateTime at)
        {
            var args = new MessageUnsentEventArgs(user, message, thread, at);

            MessageUnsent?.Invoke(this, args);
        }
예제 #10
0
 public async Task <IReadOnlyList <MessengerMessage> > GetMessagesAsync(MessengerThread thread, int limit = 20)
 {
     return(await GetMessagesAsync(thread.Id, limit));
 }
예제 #11
0
 public async Task <IReadOnlyList <MessengerMessage> > SearchThreadAsync(MessengerThread thread, string query, int limit = 5)
 {
     return(await SearchThreadAsync(thread.Id, query, limit));
 }
예제 #12
0
 public async Task <bool> SendTextAsync(MessengerThread thread, string message)
 {
     return(await SendTextAsync(thread.Id, message));
 }