Esempio n. 1
0
        private void TryRaiseFollowedEvents(string eventName, JObject jsonObjectEvent)
        {
            var json                = jsonObjectEvent.ToString();
            var followEvent         = jsonObjectEvent[eventName];
            var followedUsersEvents = ExtractUserToUserEventDTOs(followEvent);

            followedUsersEvents.ForEach(followedUsersEvent =>
            {
                var sourceUser = _factories.CreateUser(followedUsersEvent.Source);
                var targetUser = _factories.CreateUser(followedUsersEvent.Target);

                var timestamp  = long.Parse(followedUsersEvent.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 (followedUsersEvent.Type == "follow")
                {
                    var eventArgs = new UserFollowedEvent(accountActivityEvent);

                    this.Raise(UserFollowed, eventArgs);

                    if (eventArgs.InResultOf == UserFollowedRaisedInResultOf.Unknown)
                    {
                        this.Raise(EventKnownButNotFullySupportedReceived, new EventKnownButNotSupported(json, eventArgs));
                    }
                }
                else if (followedUsersEvent.Type == "unfollow")
                {
                    var eventArgs = new UserUnfollowedEvent(accountActivityEvent);

                    this.Raise(UserUnfollowed, eventArgs);

                    if (eventArgs.InResultOf == UserUnfollowedRaisedInResultOf.Unknown)
                    {
                        this.Raise(EventKnownButNotFullySupportedReceived, new EventKnownButNotSupported(json, eventArgs));
                    }
                }
                else
                {
                    this.Raise(UnsupportedEventReceived, new UnsupportedMessageReceivedEvent(jsonObjectEvent.ToString()));
                }
            });
        }
 private void UnfollowedUser(object sender, UserUnfollowedEvent e)
 {
     Console.WriteLine($">>> Account user ({e.UnfollowedBy.ScreenName}) is no longer following {e.UnfollowedUser.ScreenName}");
 }