public async Task UpdateUserDeviceAsync(UserDeviceDto userDeviceDto)
        {
            if (userDeviceDto == null)
            {
                return;
            }

            using (var dbContext = _dbContextScopeFactory.Create())
            {
                var device = await _userDeviceRepository
                             .FindAsync(w => w.UserId == userDeviceDto.UserId && w.IMEI == userDeviceDto.IMEI);

                if (device == null)
                {
                    device = UserDevice.Create(userDeviceDto.UserId,
                                               userDeviceDto.Name, userDeviceDto.AppName, userDeviceDto.AppVersion,
                                               userDeviceDto.OSPlatform, userDeviceDto.OSVersion, userDeviceDto.SerialNumber,
                                               userDeviceDto.IMEI, userDeviceDto.FireBaseToken);
                    _userDeviceRepository.Add(device);
                }
                else
                {
                    device.Update(
                        userDeviceDto.Name, userDeviceDto.AppName, userDeviceDto.AppVersion,
                        userDeviceDto.OSPlatform, userDeviceDto.OSVersion, userDeviceDto.FireBaseToken);
                }

                await dbContext.SaveChangesAsync();
            }
        }
        public async Task RemoveUserDeviceAsync(UserDeviceDto userDeviceDto)
        {
            if (userDeviceDto == null)
            {
                return;
            }

            using (var dbContext = _dbContextScopeFactory.Create())
            {
                var device = await _userDeviceRepository
                             .FindAsync(w => w.UserId == userDeviceDto.UserId && w.IMEI == userDeviceDto.IMEI);

                if (device != null)
                {
                    device.DeActive();
                    await dbContext.SaveChangesAsync();
                }
            }
        }