public EncodedCode128(IMapping mapping,
                              IEnumerable <Symbol> symbols,
                              string encodedContent,
                              IChecksumCalculator calculator)
        {
            var symbolList = symbols.ToList();

            Symbols        = symbolList;
            Data           = Symbols.SelectMany(c => c.Values).ToList();
            EncodedContent = encodedContent;
            if (calculator != null)
            {
                var checkSum       = calculator.CalculateChecksum(Data);
                var checkSumSymbol = new Symbol(SpecialCodes.CheckSum, mapping.GetPattern(checkSum), checkSum);
                symbolList.Add(checkSumSymbol);
                symbolList.Add(mapping.StopSymbol);
            }

            FullData = Symbols.SelectMany(c => c.Values).ToList();
        }