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();
            }
        }
Exemple #2
0
        private async Task <UserDevice> UpdateUserDevice(ArmUser user, string deviceName)
        {
            var userDevice = user.Devices.SingleOrDefault(x => x.Name == deviceName);

            if (userDevice == null)
            {
                userDevice = UserDevice.Create(Guid.NewGuid(), deviceName, DateTime.Now, user.Id, GenerateRefreshToken(), DateTime.Now, DateTime.Now.AddMinutes(_options.RefreshTokenLifetimeMinutes));
                await _deviceRepository.AddAsync(userDevice);
            }
            else
            {
                userDevice.Token           = GenerateRefreshToken();
                userDevice.TokenCreateDate = DateTime.Now;
                userDevice.TokenExpireDate = DateTime.Now.AddMinutes(_options.RefreshTokenLifetimeMinutes);
                await _deviceRepository.UpdateAsync(userDevice);
            }

            return(userDevice);
        }