Example #1
0
        private void TryRaiseTweetFavoritedEvents(string eventName, JObject jsonObjectEvent)
        {
            var json = jsonObjectEvent.ToString();
            var favoriteTweetEvent      = jsonObjectEvent[eventName];
            var FavoritedTweetEventJson = favoriteTweetEvent.ToString();
            var favoriteEventDTOs       = _jsonObjectConverter.Deserialize <AccountActivityFavoriteEventDTO[]>(FavoritedTweetEventJson);

            favoriteEventDTOs.ForEach(favoriteEventDTO =>
            {
                var tweet = _factories.CreateTweet(favoriteEventDTO.FavoritedTweet);
                var user  = _factories.CreateUser(favoriteEventDTO.User);

                var accountActivityEvent = new AccountActivityEvent <Tuple <ITweet, IUser> >(new Tuple <ITweet, IUser>(tweet, user))
                {
                    AccountUserId = AccountUserId,
                    EventDate     = tweet.CreatedAt,
                    Json          = json
                };

                var eventArgs = new TweetFavoritedEvent(accountActivityEvent);

                this.Raise(TweetFavorited, eventArgs);

                if (eventArgs.InResultOf == TweetFavoritedRaisedInResultOf.Unknown)
                {
                    this.Raise(EventKnownButNotFullySupportedReceived, new EventKnownButNotSupported(json, eventArgs));
                }
            });
        }
Example #2
0
        private void TryRaiseMessageReadEvent(string eventName, JObject jsonObjectEvent)
        {
            var json   = jsonObjectEvent.ToString();
            var events = _jsonObjectConverter.Deserialize <AccountActivityUserReadMessageConversationDTO>(json);

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

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

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

                var eventArgs = new UserReadMessageConversationEvent(activityEvent, sender, recipient, messageConversationReadEvent.LastReadEventId);

                this.Raise(UserReadMessageConversation, eventArgs);

                if (eventArgs.InResultOf == UserReadMessageConversationInResultOf.Unknown)
                {
                    this.Raise(EventKnownButNotFullySupportedReceived, new EventKnownButNotSupported(json, eventArgs));
                }
            });
        }
Example #3
0
        private void TryRaiseUserEvent(string eventName, JObject jsonObjectEvent)
        {
            var json      = jsonObjectEvent.ToString();
            var userEvent = jsonObjectEvent[eventName];
            var eventType = userEvent.Children().First().Path;

            if (eventType == "user_event.revoke")
            {
                var userRevokedAppEventDTO = userEvent["revoke"].ToObject <ActivityStreamUserRevokedAppPermissionsDTO>();

                var accountActivityEvent = new AccountActivityEvent()
                {
                    AccountUserId = AccountUserId,
                    EventDate     = userRevokedAppEventDTO.DateTime.ToUniversalTime(),
                    Json          = json
                };

                var userId = userRevokedAppEventDTO.Source.UserId;
                var appId  = userRevokedAppEventDTO.Target.AppId;

                var userRevokedAppEventArgs = new UserRevokedAppPermissionsEvent(accountActivityEvent, userId, appId);

                this.Raise(UserRevokedAppPermissions, userRevokedAppEventArgs);

                if (userRevokedAppEventArgs.InResultOf == UserRevokedAppPermissionsInResultOf.Unknown)
                {
                    this.Raise(EventKnownButNotFullySupportedReceived, new EventKnownButNotSupported(json, userRevokedAppEventArgs));
                }
            }
            else
            {
                this.Raise(UnsupportedEventReceived, new UnsupportedMessageReceivedEvent(jsonObjectEvent.ToString()));
            }
        }
Example #4
0
        public TweetDeletedEvent(AccountActivityEvent <long> activityEvent, long userId) : base(activityEvent)
        {
            TweetId = activityEvent.Args;
            UserId  = userId;

            InResultOf = GetInResultOf();
        }
        public UserRevokedAppPermissionsEvent(
            AccountActivityEvent activityEvent,
            long userId,
            long appId) : base(activityEvent)
        {
            UserId = userId;
            AppId  = appId;

            InResultOf = GetInResultOf();
        }
Example #6
0
        private void TryRaiseMessageEvent(string eventName, JObject jsonObjectEvent)
        {
            var json      = jsonObjectEvent.ToString();
            var eventInfo = _jsonObjectConverter.Deserialize <AccountActivityMessageCreatedEventDTO>(json);

            eventInfo.MessageEvents.ForEach(messageEventDTO =>
            {
                App app = null;

                if (messageEventDTO.MessageCreate.SourceAppId != null)
                {
                    eventInfo.Apps?.TryGetValue(messageEventDTO.MessageCreate.SourceAppId.ToString(), out app);
                }

                eventInfo.UsersById.TryGetValue(messageEventDTO.MessageCreate.SenderId.ToString(), out var senderDTO);
                eventInfo.UsersById.TryGetValue(messageEventDTO.MessageCreate.Target.RecipientId.ToString(), out var recipientDTO);

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

                var message = _factories.CreateMessage(messageEventDTO, app);

                var accountActivityEvent = new AccountActivityEvent <IMessage>(message)
                {
                    AccountUserId = AccountUserId,
                    EventDate     = message.CreatedAt,
                    Json          = json
                };

                if (message.SenderId == AccountUserId)
                {
                    var eventArgs = new MessageSentEvent(accountActivityEvent, message, sender, recipient, app);
                    this.Raise(MessageSent, eventArgs);

                    if (eventArgs.InResultOf == MessageSentInResultOf.Unknown)
                    {
                        this.Raise(EventKnownButNotFullySupportedReceived, new EventKnownButNotSupported(json, eventArgs));
                    }
                }
                else if (message.RecipientId == AccountUserId)
                {
                    var eventArgs = new MessageReceivedEvent(accountActivityEvent, message, sender, recipient, app);
                    this.Raise(MessageReceived, eventArgs);

                    if (eventArgs.InResultOf == MessageReceivedInResultOf.Unknown)
                    {
                        this.Raise(EventKnownButNotFullySupportedReceived, new EventKnownButNotSupported(json, eventArgs));
                    }
                }
                else
                {
                    this.Raise(UnsupportedEventReceived, new UnsupportedMessageReceivedEvent(jsonObjectEvent.ToString()));
                }
            });
        }
Example #7
0
        private void TryRaiseUserBlockedEvents(string eventName, JObject jsonObjectEvent)
        {
            var json              = jsonObjectEvent.ToString();
            var userBlockedEvent  = jsonObjectEvent[eventName];
            var blockedEventInfos = ExtractUserToUserEventDTOs(userBlockedEvent);

            blockedEventInfos.ForEach(blockedEventInfo =>
            {
                var sourceUser = _factories.CreateUser(blockedEventInfo.Source);
                var targetUser = _factories.CreateUser(blockedEventInfo.Target);

                var timestamp  = long.Parse(blockedEventInfo.CreatedTimestamp);
                var dateOffset = DateTimeOffset.FromUnixTimeMilliseconds(timestamp);

                var accountActivityEvent = new AccountActivityEvent <Tuple <IUser, IUser> >(new Tuple <IUser, IUser>(sourceUser, targetUser))
                {
                    AccountUserId = AccountUserId,
                    EventDate     = dateOffset.UtcDateTime,
                    Json          = json
                };

                if (blockedEventInfo.Type == "block")
                {
                    var eventArgs = new UserBlockedEvent(accountActivityEvent);

                    this.Raise(UserBlocked, eventArgs);

                    if (eventArgs.InResultOf == UserBlockedRaisedInResultOf.Unknown)
                    {
                        this.Raise(EventKnownButNotFullySupportedReceived, new EventKnownButNotSupported(json, eventArgs));
                    }
                }
                else if (blockedEventInfo.Type == "unblock")
                {
                    var eventArgs = new UserUnblockedEvent(accountActivityEvent);

                    this.Raise(UserUnblocked, eventArgs);

                    if (eventArgs.InResultOf == UserUnblockedRaisedInResultOf.Unknown)
                    {
                        this.Raise(EventKnownButNotFullySupportedReceived, new EventKnownButNotSupported(json, eventArgs));
                    }
                }
                else
                {
                    this.Raise(UnsupportedEventReceived, new UnsupportedMessageReceivedEvent(json));
                }
            });
        }
Example #8
0
        private void TryRaiseTweetDeletedEvents(string eventName, JObject jsonObjectEvent)
        {
            var json = jsonObjectEvent.ToString();
            var tweetDeletedEventJToken = jsonObjectEvent[eventName];
            var tweetDeletedEventDTOs   = tweetDeletedEventJToken.ToObject <AccountActivityTweetDeletedEventDTO[]>();

            tweetDeletedEventDTOs.ForEach(tweetDeletedEventDTO =>
            {
                var dateOffset = DateTimeOffset.FromUnixTimeMilliseconds(tweetDeletedEventDTO.Timestamp);

                var accountActivityEvent = new AccountActivityEvent <long>(tweetDeletedEventDTO.Status.TweetId)
                {
                    AccountUserId = AccountUserId,
                    EventDate     = dateOffset.UtcDateTime,
                    Json          = json
                };

                var eventArgs = new TweetDeletedEvent(accountActivityEvent, tweetDeletedEventDTO.Status.UserId);

                this.Raise(TweetDeleted, eventArgs);
            });
        }
 // Other events
 private void AccountActivityEvent(object sender, AccountActivityEvent args)
 {
     Console.WriteLine($">>> user '{args.AccountUserId}' received:");
     Console.WriteLine($"{args.Json}");
 }