private void Initialize(int restrictionId) { try { // Lock the tables. Debug.Assert(!ClientMarketData.AreLocksHeld); ClientMarketData.RestrictionLock.AcquireReaderLock(CommonTimeout.LockWait); // Make sure the restriction exists. We need it to find the default settlement restriction. ClientMarketData.RestrictionRow restrictionRow = ClientMarketData.Restriction.FindByRestrictionId(restrictionId); if (restrictionRow == null) { throw new Exception(String.Format("Restriction {0} doesn't exist", restrictionId)); } // Initialize the object from the ADO record. Initialize(restrictionRow); } finally { // Release the table locks. if (ClientMarketData.RestrictionLock.IsReaderLockHeld) { ClientMarketData.RestrictionLock.ReleaseReaderLock(); } Debug.Assert(!ClientMarketData.AreLocksHeld); } }
internal static Restriction Make(ClientMarketData.RestrictionRow restrictionRow) { Restriction restriction = new Restriction(); restriction.Initialize(restrictionRow); return(restriction); }
public ViolationList GetViolations() { ViolationList violationList = new ViolationList(); try { // Lock the tables. Debug.Assert(!ClientMarketData.AreLocksHeld); ClientMarketData.AccountLock.AcquireReaderLock(CommonTimeout.LockWait); ClientMarketData.ObjectLock.AcquireReaderLock(CommonTimeout.LockWait); ClientMarketData.PositionLock.AcquireReaderLock(CommonTimeout.LockWait); ClientMarketData.RestrictionLock.AcquireReaderLock(CommonTimeout.LockWait); ClientMarketData.SecurityLock.AcquireReaderLock(CommonTimeout.LockWait); ClientMarketData.ViolationLock.AcquireReaderLock(CommonTimeout.LockWait); // Make sure the restriction exists. We need it to find the default settlement restriction. ClientMarketData.RestrictionRow restrictionRow = ClientMarketData.Restriction.FindByRestrictionId(this.restrictionId); if (restrictionRow == null) { throw new Exception(String.Format("Restriction {0} doesn't exist", restrictionId)); } foreach (ClientMarketData.ViolationRow violationRow in restrictionRow.GetViolationRows()) { violationList.Add(new Violation(violationRow)); } } finally { // Release the table locks. if (ClientMarketData.AccountLock.IsReaderLockHeld) { ClientMarketData.AccountLock.ReleaseReaderLock(); } if (ClientMarketData.ObjectLock.IsReaderLockHeld) { ClientMarketData.ObjectLock.ReleaseReaderLock(); } if (ClientMarketData.PositionLock.IsReaderLockHeld) { ClientMarketData.PositionLock.ReleaseReaderLock(); } if (ClientMarketData.RestrictionLock.IsReaderLockHeld) { ClientMarketData.RestrictionLock.ReleaseReaderLock(); } if (ClientMarketData.SecurityLock.IsReaderLockHeld) { ClientMarketData.SecurityLock.ReleaseReaderLock(); } if (ClientMarketData.ViolationLock.IsReaderLockHeld) { ClientMarketData.ViolationLock.ReleaseReaderLock(); } Debug.Assert(!ClientMarketData.AreLocksHeld); } return(violationList); }
private void Initialize(ClientMarketData.RestrictionRow restrictionRow) { // Initialize the record from the data model. this.restrictionId = restrictionRow.RestrictionId; this.severity = (Severity)restrictionRow.Severity; this.approval = (Approval)restrictionRow.Approval; this.description = restrictionRow.Description; }
public static Restriction Find(string restrictionId) { Restriction restriction = null; try { // Lock the tables. Debug.Assert(!ClientMarketData.AreLocksHeld); ClientMarketData.ConfigurationLock.AcquireReaderLock(CommonTimeout.LockWait); ClientMarketData.RestrictionLock.AcquireReaderLock(CommonTimeout.LockWait); int internalRestrictionId = FindKey("DEFAULT", restrictionId); if (internalRestrictionId != Identifier.NotFound) { ClientMarketData.RestrictionRow restrictionRow = ClientMarketData.Restriction.FindByRestrictionId(internalRestrictionId); if (restrictionRow == null) { throw new Exception(string.Format("Restriction {0} can'b be found", internalRestrictionId)); } restriction = new Restriction(restrictionRow); } } finally { // Release the table locks. if (ClientMarketData.ConfigurationLock.IsReaderLockHeld) { ClientMarketData.ConfigurationLock.ReleaseReaderLock(); } if (ClientMarketData.RestrictionLock.IsReaderLockHeld) { ClientMarketData.RestrictionLock.ReleaseReaderLock(); } Debug.Assert(!ClientMarketData.AreLocksHeld); } return(restriction); }
public Restriction(ClientMarketData.RestrictionRow restrictionRow) { // Initialize the object from the ADO record. Initialize(restrictionRow); }