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}"); }