Exemple #1
0
        public void Print(WordDocumentWriter docWriter, Product product, int?amount = null, ProductBlock block = null)
        {
            var tableProperties = docWriter.CreateTableProperties();

            tableProperties.Alignment = ParagraphAlignment.Left;
            tableProperties.PreferredWidthAsPercentage = 100;
            //выделяем необходимый блок
            if (block != null && product.ProductBlock.Id == block.Id)
            {
                tableProperties.BorderProperties.Color = Colors.Red;
                tableProperties.BorderProperties.Width = 3;
            }
            docWriter.StartTable(2, tableProperties);

            //Заголовок
            docWriter.StartTableRow();
            Font fontBold = docWriter.CreateFont();

            fontBold.Bold = true;
            var header = amount == null ? $"{product}" : $"{product} x {amount} шт.";

            docWriter.PrintTableCell(header, docWriter.CellProps(2, null, Colors.AliceBlue), null, fontBold);
            docWriter.EndTableRow();

            //строки параметров
            foreach (var parameter in product.ProductBlock.GetOrderedParameters())
            {
                docWriter.StartTableRow();
                docWriter.PrintTableCell($"{parameter.ParameterGroup}");
                docWriter.PrintTableCell($"{parameter}");
                docWriter.EndTableRow();
            }

            //печать зависимого оборудования
            foreach (var dependent in product.DependentProducts)
            {
                docWriter.StartTableRow();
                docWriter.StartTableCell(docWriter.CellProps(2, Padding.PadAll(0.25f)));
                Print(docWriter, dependent.Product, dependent.Amount, block);
                docWriter.EndTableCell();
                docWriter.EndTableRow();
            }

            docWriter.EndTable();
        }