/// <summary>
 /// Initializes a new instance of the RebateConfirmationParser class.
 /// </summary>
 /// <param name="log">
 /// The CommerceLog object through which log entries can be made.
 /// </param>
 public RebateConfirmationParser(CommerceLog log)
 {
     Log = log;
     RebateConfirmationHeaderParser  = new RebateConfirmationHeaderParser(log);
     RebateConfirmationDataParser    = new RebateConfirmationDataParser(log);
     RebateConfirmationTrailerParser = new RebateConfirmationTrailerParser(log);
 }
        /// <summary>
        /// Parses a header record.
        /// </summary>
        /// <remarks>
        /// A null item may be added.
        /// </remarks>
        private void ParseHeaderRecord()
        {
            if (NumberOfHeaderRecords == 0)
            {
                if (LineNumber > 1)
                {
                    Log.Warning("Error parsing record in line #{0} from file \"{1}\". One or more records found  " +
                                "before header record parsed.", (int)ResultCode.RecordOutOfPlace, LineNumber, FileName);
                }

                RebateConfirmation.Header = RebateConfirmationHeaderParser.Parse(Line);
            }
            else
            {
                Log.Warning("Error parsing record in line #{0} from file \"{1}\". More than one header record found. All " +
                            "header records after the first one encountered will be ignored.",
                            (int)ResultCode.UnexpectedDuplicateRecordTypeFound, LineNumber, FileName);
            }

            NumberOfHeaderRecords++;
        }