public static bool RecordScan(int deviceId, ScanType scanType, DateTime scanStartTime) { Transaction transaction = new Transaction(IsolationLevel.RepeatableRead, "ScanHistoryUpdate"); try { DeviceEntity device = new DeviceEntity(); transaction.Add(device); device.FetchUsingPK(deviceId); device.ScansUsed = device.ScansUsed + 1; device.ScansAvailable = device.ScansAvailable - 1; ScanHistoryEntity history = device.ScanHistories.AddNew(); history.ScanType = scanType; history.ScanStartTime = scanStartTime; device.Save(true); // recurse=true; will also save the history record transaction.Commit(); return(true); } catch (Exception) { transaction.Rollback(); return(false); } finally { transaction.Dispose(); } }
public static Boolean DecrementScansImpl(string deviceUniqueKeyVar, DateTime scanTime, short scanType) { Transaction transactionManager = new Transaction(IsolationLevel.ReadCommitted, "Decrement Scans"); int deviceId = DataHelpers.KeyToIdHelpers.ConvertDeviceKey(deviceUniqueKeyVar); // Add in history record ScanHistoryEntity scanHistoryEntity = new ScanHistoryEntity(); scanHistoryEntity.DeviceId = deviceId; //scanHistoryEntity.ScanTypeId = scanType; scanHistoryEntity.ScanStartTime = scanTime; scanHistoryEntity.Save(); // Decrement useage counts DeviceEntity deviceEntity = new DeviceEntity(deviceId); deviceEntity.ScansAvailable = deviceEntity.ScansAvailable - 1; deviceEntity.Save(); transactionManager.Commit(); transactionManager.Dispose(); return(true); }