private void Validate_Stock_FailureMessage_Test(ITrade trade, String expectedErrorMessage)
        {
            try
            {
                trade.Validate();

                Assert.Fail("Validation passed on invalid trade");
            }
            catch (Exception ex)
            {
                Assert.AreEqual(expectedErrorMessage, ex.Message);
            }
        }
        private void Record(ITrade trade)
        {
            try
            {
                if (trade == null)
                {
                    throw new ArgumentNullException("trade");
                }

                if (trade.Validate())
                {
                    this.tradeRepo.Save(trade);
                }
            }
            catch (Exception ex)
            {
                Logger.LogError(Logging.Events.RECORD, ex, "Failure recording trade");
                throw new Exception("Failure recording trade", ex);
            }
        }