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