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