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(); }