public async Task HandleAsync(RegisterFcmExternalUserDeviceCommand message, CancellationToken cancellationToken) { string normalizedDeviceToken = message.RegistrationId; FcmExternalUserDeviceToken token = await repository.FirstOrDefaultAsync <FcmExternalUserDeviceToken>( x => x.RegistrationId == normalizedDeviceToken && x.AppId == message.AppId); if (token != null) { if (token.ExternalUserId == message.UserId) { return; } repository.Remove(token); } // TODO restrict AppIds (a configurable list?) token = new FcmExternalUserDeviceToken(Guid.NewGuid(), message.UserId, normalizedDeviceToken.Replace(" ", ""), message.AppId); repository.Add(token); Logger.Debug($"Added external APNS external user device token for user ID {message.UserId}"); }
public async Task HandleAsync(DeregisterFcmExternalUserDeviceCommand message, CancellationToken cancellationToken) { string normalizedDeviceToken = message.RegistrationId; FcmExternalUserDeviceToken token = await repository.FirstOrDefaultAsync <FcmExternalUserDeviceToken>( x => x.RegistrationId == normalizedDeviceToken && x.AppId == message.AppId); if (token != null) { repository.Remove(token); } }