Example #1
0
        private TagBuilder CreateHeaderRows(bool isDeviceDataPrinting, bool isLocalDataPrinting)
        {
            TagBuilder tableRowForHeaders = new TagBuilder("tr");

            TagBuilder nameTableHeader = new TagBuilder("th");

            nameTableHeader.AddToInnerHtml(_localizerService.GetLocalizedString("Name"));
            tableRowForHeaders.AddTagToInnerHtml(nameTableHeader);

            if (isDeviceDataPrinting)
            {
                TagBuilder deviceDataTableHeader = new TagBuilder("th");
                deviceDataTableHeader.AddToInnerHtml(_localizerService.GetLocalizedString("DeviceData"));
                tableRowForHeaders.AddTagToInnerHtml(deviceDataTableHeader);
            }

            if (isLocalDataPrinting)
            {
                TagBuilder localDataTableHeader = new TagBuilder("th");
                localDataTableHeader.AddToInnerHtml(_localizerService.GetLocalizedString("LocalData"));
                tableRowForHeaders.AddTagToInnerHtml(localDataTableHeader);
            }

            TagBuilder measureUnitTableHeader = new TagBuilder("th");

            measureUnitTableHeader.AddToInnerHtml(_localizerService.GetLocalizedString("MeasureUnit"));

            TagBuilder rangeTableHeader = new TagBuilder("th");

            rangeTableHeader.AddToInnerHtml(_localizerService.GetLocalizedString("Range"));

            tableRowForHeaders.AddTagToInnerHtml(measureUnitTableHeader);
            tableRowForHeaders.AddTagToInnerHtml(rangeTableHeader);
            return(tableRowForHeaders);
        }
Example #2
0
        public Maybe <List <TagBuilder> > RenderRecord(int numberOfRecord, List <IFormattedValueViewModel> valueViewModels)
        {
            TagBuilder tableRowForItems = new TagBuilder("tr");
            TagBuilder numberTag        = new TagBuilder("td");

            numberTag.AddToInnerHtml(numberOfRecord.ToString());
            tableRowForItems.AddTagToInnerHtml(numberTag);
            valueViewModels.ForEach(model =>
            {
                TagBuilder tag = new TagBuilder("td");
                tag.AddToInnerHtml(model.AsString());
                tableRowForItems.AddTagToInnerHtml(tag);
            });
            return(Maybe <List <TagBuilder> > .FromValue(new List <TagBuilder>(){ tableRowForItems }));
        }
Example #3
0
        public async Task <string> RenderHtmlString(IRuntimeConfigurationViewModel deviceConfiguration,
                                                    ConfigurationExportSelector configurationExportSelector)
        {
            string main =
                "<!DOCTYPE html>\n <html> " +
                "\n<style type=\"text/css\" media=\"all\" >" +
                "\nbody { font-size: small }" +
                "\n.rootItem {border: 0; background-color:#999 !important;" +
                "\n-webkit-print-color-adjust: exact;" +
                "\ncolor-adjust: exact;}" +
                "\ntr:nth-of-type(odd) {background-color:#ccc;" +
                "\n-webkit-print-color-adjust: exact;" +
                "\ncolor-adjust: exact;}" +
                "\ntd {border: 0}" +
                "\n</style> " +
                "\n<head>\n <meta charset =\"utf-8\"/>\n<title> HTML Document </title>\n</head>";
            await Task.Run((() =>
            {
                TagBuilder body = new TagBuilder("body");

                TagBuilder table = new TagBuilder("table");
                table.MergeAttribute("border", "1");
                table.AddTagToInnerHtml(CreateHeaderRows(configurationExportSelector.IsPrintDeviceValuesAllowed,
                                                         configurationExportSelector.IsPrintLocalValuesAllowed));


                foreach (var rootConfigurationItem in deviceConfiguration.RootConfigurationItemViewModels)
                {
                    var selector = configurationExportSelector.SelectorForItemsGroup.FirstOrDefault(
                        group => group.RelatedItemsGroup == rootConfigurationItem) ??
                                   configurationExportSelector.SelectorForItemsGroup.First();
                    _itemRendererFactory.GetConfigurationItemRenderer(rootConfigurationItem)
                    .RenderHtmlFromItem(rootConfigurationItem, selector
                                        )
                    .OnNotEmpty(list => list
                                .ForEach(builder => table
                                         .AddTagToInnerHtml(builder)));
                }

                body.AddTagToInnerHtml(table);
                main += body;

                main += ("\n</html>");
            }));


            return(main);
        }
Example #4
0
        private TagBuilder CreateHeaderRows(IUniconJournalViewModel journalViewModel)
        {
            TagBuilder tableRowForHeaders = new TagBuilder("tr");
            TagBuilder numTableHeader     = new TagBuilder("th");

            numTableHeader.AddToInnerHtml("№");
            tableRowForHeaders.AddTagToInnerHtml(numTableHeader);
            foreach (var columnName in journalViewModel.Table.ColumnNamesStrings)
            {
                TagBuilder nameTableHeader = new TagBuilder("th");
                nameTableHeader.AddToInnerHtml(columnName);
                tableRowForHeaders.AddTagToInnerHtml(nameTableHeader);
            }

            return(tableRowForHeaders);
        }
        private void AddDataTag(TagBuilder tagBuilder, string data)
        {
            TagBuilder tag = new TagBuilder("td");

            tag.AddToInnerHtml(data);
            tagBuilder.AddTagToInnerHtml(tag);
        }
        public TagBuilder Render()
        {
            TagBuilder tableRowForItems = new TagBuilder("tr");

            TagBuilder nameTableItem = new TagBuilder("td");
            string     offsetString  = "";

            for (int i = 0; i < _depthLevel; i++)
            {
                offsetString += "&nbsp;&nbsp;&nbsp;&nbsp;";
            }

            if (_nameRenderData.CssClassName != null)
            {
                nameTableItem.AddCssClass(_nameRenderData.CssClassName);
            }

            nameTableItem.AddToInnerHtml(offsetString + _nameRenderData.StringToRender);

            tableRowForItems.AddTagToInnerHtml(nameTableItem);
            RenderDataToTag(tableRowForItems, _deviceData, _shouldRenderEmptyItems, _isDeviceDataPrinting);
            RenderDataToTag(tableRowForItems, _localData, _shouldRenderEmptyItems, _isLocalDataPrinting);
            RenderDataToTag(tableRowForItems, _measureUnit, _shouldRenderEmptyItems);
            RenderDataToTag(tableRowForItems, _range, _shouldRenderEmptyItems);
            return(tableRowForItems);
        }
Example #7
0
        public async Task <string> RenderHtmlString(IUniconJournalViewModel journalViewModel,
                                                    JournalExportSelector configurationExportSelector)
        {
            string main =
                "<!DOCTYPE html>\n <html> " +
                "\n<style type=\"text/css\" media=\"all\" >" +
                "\nbody { font-size: small }" +
                "\n.rootItem {border: 0; background-color:#999 !important;" +
                "\n-webkit-print-color-adjust: exact;" +
                "\ncolor-adjust: exact;}" +
                "\ntr:nth-of-type(odd) {background-color:#ccc;" +
                "\n-webkit-print-color-adjust: exact;" +
                "\ncolor-adjust: exact;}" +
                "\ntd {border: 0}" +
                "\n</style> " +
                "\n<head>\n <meta charset =\"utf-8\"/>\n<title> HTML Document </title>\n</head>";
            await Task.Run((() =>
            {
                TagBuilder body = new TagBuilder("body");

                TagBuilder table = new TagBuilder("table");
                table.MergeAttribute("border", "1");
                table.AddTagToInnerHtml(CreateHeaderRows(journalViewModel));

                int numberOfRecord = 1;
                foreach (var record in journalViewModel.Table.Values)
                {
                    _journalRecordRenderer.RenderRecord(numberOfRecord, record)
                    .OnNotEmpty(list => list
                                .ForEach(builder => table
                                         .AddTagToInnerHtml(builder)));
                    numberOfRecord++;
                }

                body.AddTagToInnerHtml(table);
                main += body;

                main += ("\n</html>");
            }));


            return(main);
        }