public async Task Create(OrderAllocation entity)
        {
            this._logger.LogInformation("OrderAllocationRepository Create method called");

            lock (this._lock)
            {
                if (entity == null || !entity.IsValid())
                {
                    this._logger.LogInformation(
                        "OrderAllocationRepository Create method called with null or invalid order allocation, returning without saving");
                    return;
                }

                try
                {
                    var dto = new OrderAllocationDto(entity);
                    this._logger.LogInformation(
                        "OrderAllocationRepository Create method opened db connection and about to write record");

                    using (var dbConn = this._connectionFactory.BuildConn())
                    {
                        var conn = dbConn.ExecuteAsync(InsertAttributionSql, dto).ConfigureAwait(false).GetAwaiter().GetResult();
                        this._logger.LogInformation("OrderAllocationRepository Create method completed writing record");
                    }
                }
                catch (Exception e)
                {
                    this._logger.LogError(e, "OrderAllocationRepository Create method had an exception. ");
                }

                this._logger.LogInformation("OrderAllocationRepository Create method completed");
            }
        }
        public OrderAllocation Project(OrderAllocationDto dto)
        {
            if (dto == null)
            {
                return(null);
            }

            return(new OrderAllocation(
                       dto.Id,
                       dto.OrderId,
                       dto.Fund,
                       dto.Strategy,
                       dto.ClientAccountId,
                       dto.AllocationId,
                       dto.OrderFilledVolume,
                       dto.CreatedDate));
        }