/// <summary>
        /// Create a new Math record
        /// </summary>
        /// <returns></returns>
        public override Guid Create(Records.Match record)
        {
            DataModel dataModel = new DataModel();
            Guid      matchId   = Guid.NewGuid();

            DataModelTransaction dataModelTransaction = DataModelTransaction.Current;
            Guid blotter = record.BlotterId.GetValueOrDefault();

            if (blotter == Guid.Empty || !TradingSupport.HasAccess(dataModelTransaction, blotter, AccessRight.Write))
            {
                throw new SecurityException("Current user does not have write access to the selected blotter");
            }

            ////Create a match
            dataModel.CreateMatch(
                record.BlotterId.GetValueOrDefault(),
                record.ContraMatchId.GetValueOrDefault(),
                record.ContraOrderId.GetValueOrDefault(),
                record.HeatIndex,
                record.HeatIndexDetails,
                DateTime.UtcNow,
                matchId,
                record.StatusCodeId.GetValueOrDefault(),
                record.WorkingOrderId.GetValueOrDefault());

            return(matchId);
        }