Ejemplo n.º 1
0
        private InsertResult InsertWithoutSplit(
            CustomerRecord newCustomerRecord,
            AdditionalSpaceAction additionalSpaceAction)
        {
            var pageSize = GetCorrectPageSize(additionalSpaceAction);

            for (int recordIndex = 0; recordIndex < pageSize; recordIndex++)
            {
                if (_customerRecords[recordIndex] == null)
                {
                    _customerRecords[recordIndex] = newCustomerRecord;

                    break;
                }

                if (_customerRecords[recordIndex].CustomerId > newCustomerRecord.CustomerId)
                {
                    _customerRecords = ShiftAndInsert(
                        _customerRecords,
                        newCustomerRecord,
                        recordIndex, pageSize);

                    break;
                }
            }

            return(InsertResult.CreateWithoutSplit());
        }
Ejemplo n.º 2
0
        private int GetCorrectPageSize(
            AdditionalSpaceAction additionalSpaceAction)
        {
            if (additionalSpaceAction == AdditionalSpaceAction.UseAddtionalSpace)
            {
                return(PageSizePlusAdditionalSpace);
            }

            return(PageSize);
        }