public PracticeActivation ActivateDevice(DeviceInfo deviceInfo, DeviceLocationInfo deviceLocationInfo = null) { if (IsDeviceActivated(deviceInfo.Serial)) { return(Activations.FirstOrDefault(x => x.IsActive())); } if (IsDeviceExpired(deviceInfo.Serial)) { var expiredDevice = Activations.FirstOrDefault(x => x.IsExpired()); expiredDevice.Renew(deviceInfo, deviceLocationInfo); return(expiredDevice); } return(PracticeActivation.Create(Id, deviceInfo, deviceLocationInfo)); }