Пример #1
0
        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}");
        }
Пример #2
0
        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);
            }
        }