/// <summary>
        /// Setups the specified folder: output folder
        /// </summary>
        /// <param name="folder">The folder.</param>
        public override void setup()
        {
            // outputpath = "help" + Path.DirectorySeparatorChar;

            //

            scriptFlags = docScriptFlags.allowFailedInstructions | docScriptFlags.enableLocalCollection | docScriptFlags.ignoreArgumentValueNull | docScriptFlags.ignoreCompilationFails | docScriptFlags.useDataDictionaryForLocalData;

            theme = stylePresets.themeSemantics;

            AddThemeSupportFiles("velestrap", "bootmark.min.js", "include\\", true);

            AddThemeSupportFiles("velestrap", "*.css", "include\\", false);
            AddThemeSupportFiles("velestrap", "*.js", "include\\", false);

            var footer_delivery = AddItem(new deliveryUnitItemFileOutput("compact\\footer.md", templateFieldSubcontent.html_footer, deliveryUnitItemLocationBase.localResource, "Page footer", "Include at end of page"));

            var renderDirectory = new deliveryUnitDirectoryConstructor(reportElementLevel.documentSet, reportElementLevel.document); // creates directory for documentSets and document

            Add(renderDirectory);

            var renderOutput = new deliveryUnitItemSimpleRenderOutput(new builderForMarkdown(),
                                                                      reportOutputFormatName.textMdFile, renderDirectory.levels);

            renderOutput.levelOfNewFile = reportElementLevel.page;
            renderOutput.levelOfNewPage = reportElementLevel.none;
            renderOutput.levels.AddMulti(reportElementLevel.documentSet, reportElementLevel.document, reportElementLevel.servicepage, reportElementLevel.page, reportElementLevel.block);

            Add(renderOutput);

            var renderOutputTemplate = new deliveryUnitItemContentTemplated("compact\\index.html", renderOutput, reportOutputFormatName.textHtml, renderDirectory.levels);

            renderOutputTemplate.filenameSufix = "";
            renderOutputTemplate.levels.AddMulti(reportElementLevel.documentSet, reportElementLevel.document, reportElementLevel.servicepage, reportElementLevel.page);
            Add(renderOutputTemplate);

            //var indexdeliver = AddItem(new deliveryUnitItemFileOutput("veles_report\\index.md", "index.html", "Report home", "Introduction page of the report", renderOutputTemplate));

            AddReportIncludeFiles("docs", renderOutputTemplate, "*.md", false);

            /*
             * var logOutA = AddItem(new deliveryUnitItemLogOutput(imbSCI.Cores.enums.logOutputSpecial.reportContext, "logs\\reporting.md", renderOutputTemplate));
             *
             * var logOutB = AddItem(new deliveryUnitItemLogOutput(imbSCI.Cores.enums.logOutputSpecial.systemMainLog, "logs\\system.md", renderOutputTemplate));
             *
             * var logOutC = AddItem(new deliveryUnitItemLogOutput(imbSCI.Cores.enums.logOutputSpecial.aceCommonServices, "logs\\execution.md", renderOutputTemplate));
             *
             * var logOutD = AddItem(new deliveryUnitItemLogOutput(imbSCI.Cores.enums.logOutputSpecial.initialLog, "logs\\init.md", renderOutputTemplate));
             */
            /*
             * AddItem(new deliveryUnitItemLogOutput(imbSCI.Cores.enums.logOutputSpecial.devNotes, "logs\\devnotes.md", renderOutputTemplate));
             * AddItem(new deliveryUnitItemLogOutput(imbSCI.Cores.enums.logOutputSpecial.aceCommonServices, "logs\\ace_common_services.md", renderOutputTemplate));
             * AddItem(new deliveryUnitItemLogOutput(imbSCI.Cores.enums.logOutputSpecial.aceSubsystem, "logs\\ace_subsystem.md", renderOutputTemplate));
             *
             * AddItem(new deliveryUnitItemLogOutput(imbSCI.Cores.enums.logOutputSpecial.analyticEngine, "logs\\analytic_engine.md", renderOutputTemplate));
             * AddItem(new deliveryUnitItemLogOutput(imbSCI.Cores.enums.logOutputSpecial.languageEngine, "logs\\language_engine.md", renderOutputTemplate));
             * AddItem(new deliveryUnitItemLogOutput(imbSCI.Cores.enums.logOutputSpecial.semanticEngine, "logs\\semantic_engine.md", renderOutputTemplate));
             *
             */
        }
Exemple #2
0
        /// <summary>
        /// Setups this instance.
        /// </summary>
        public override void setup()
        {
            scriptFlags = docScriptFlags.allowFailedInstructions | docScriptFlags.disableGlobalCollection | docScriptFlags.enableLocalCollection | docScriptFlags.ignoreArgumentValueNull | docScriptFlags.ignoreCompilationFails;

            theme = stylePresets.themeSemantics;

            //String cssPath = "".t(templateFieldDeliveryUnit.del_themepath).add("simple\\simple.css", "\\");

            //deliveryUnitItemSupportFile standardCss = new deliveryUnitItemSupportFile(cssPath, "include\\"); // copies file and later includes the file
            //this.Add(standardCss);

            //this.Add(new deliveryUnitItemSupportFile("".t(templateFieldDeliveryUnit.del_themepath).add("simple\\bootstrap.css", "\\"));

            AddThemeSupportFile("simple\\simple.css");
            AddThemeSupportFile("simple\\bootstrap.css");

            //this.AddThemeSupportFile("strap\\strapdown.css");
            //this.AddThemeSupportFile("strap\\strapdown.js");
            //this.AddThemeSupportFile("strap\\strapdown-topbar.min.js");

            AddThemeSupportFiles("strapzeta", "*.css");
            AddThemeSupportFile("strapzeta\\bootstrap.min.js");

            AddThemeSupportFile("strapzeta\\strapdown.js").linkType = appendLinkType.scriptPostLink;

            deliveryUnitItemPaletteCSS palletteCss = new deliveryUnitItemPaletteCSS("standard\\standard.css", "include\\"); // templated palette css

            Add(palletteCss);

            //this.AddStandardHtmlItems();
            this.AddJSPluginSupport(jsPluginEnum.D3);                                                                                // copies js file
            this.AddJSPluginSupport(jsPluginEnum.JQuery);                                                                            // copies jquery

            var renderDirectory = new deliveryUnitDirectoryConstructor(reportElementLevel.documentSet, reportElementLevel.document); // creates directory for documentSets and document

            Add(renderDirectory);

            var renderOutput = new deliveryUnitItemSimpleRenderOutput(new builderForMarkdown(), reportOutputFormatName.textMdFile, renderDirectory.levels);

            renderOutput.levelOfNewFile = reportElementLevel.page;
            renderOutput.levelOfNewPage = reportElementLevel.none;
            renderOutput.levels.AddMultiple(reportElementLevel.documentSet, reportElementLevel.document, reportElementLevel.servicepage, reportElementLevel.page, reportElementLevel.block);

            Add(renderOutput);

            var renderOutputTemplate = new deliveryUnitItemContentTemplated("simple\\simple.html", renderOutput, reportOutputFormatName.htmlViaMD, renderDirectory.levels);

            renderOutputTemplate.filenameSufix = "";
            renderOutputTemplate.levels.AddMultiple(reportElementLevel.servicepage, reportElementLevel.page, reportElementLevel.block);
            Add(renderOutputTemplate);

            // renderOutput.attachIncludeItem(this.items);

            //var renderTableOutput = new deliveryUnitItemSimpleRenderOutput(new builderForTableDocument(), reportOutputFormatName.sheetExcel);
            //renderTableOutput.levels.Add(reportElementLevel.document, reportElementLevel.page, reportElementLevel.block);
            //this.Add(renderTableOutput);

            // this.Add();
        }
        /// <summary>
        /// Executes the and save.
        /// </summary>
        /// <param name="report">The report.</param>
        /// <param name="runstamp">The runstamp.</param>
        /// <param name="__data">The data.</param>
        protected void execute(metaDocumentRootSet report, string runstamp, PropertyCollection __data = null)
        {
            dataDictionary = new PropertyCollectionDictionary();

            if (!unit.scriptFlags.HasFlag(docScriptFlags.disableGlobalCollection))
            {
                logStartPhase("Collect data", "#2 phase of data collecting");
                dataDictionary = report.collect(dataDictionary);
                logEndPhase();
            }
            else
            {
                log("Global data collection disabled by unit.scriptFlags");
            }

            logStartPhase("Script composing", "#3 phase of data composing");

            script       = new docScript("Script - unit[" + unit.name + "] - runstamp: " + runstamp);
            script.flags = unit.scriptFlags;

            script = report.compose(script);
            if (doBuildDeliveryMeta)
            {
                string scMeta = script.ToString(docScriptInstructionTextFormatEnum.meta);
                scMeta.saveStringToFile(directoryRoot.FullName.add("deliveryMeta.md", "\\"), getWritableFileMode.autoRenameExistingOnOtherDate, Encoding.UTF8);

                string csMeta = script.ToString(docScriptInstructionTextFormatEnum.cs_compose);
                csMeta.saveStringToFile(directoryRoot.FullName.add("deliveryMeta.cs", "\\"), getWritableFileMode.autoRenameExistingOnOtherDate, Encoding.UTF8);
            }

            logEndPhase();

            setup(unit.theme, data, renders.getTextRenders());

            logStartPhase("Script compilation", "#4 applying data to content");

            compiled = compile(script, dataDictionary);

            repo = new reportOutputRepository(directoryRoot, script.name);

            logStartPhase("Execute docScriptInstructions ", "5# executing scripttotal instructions (" + script.Count() + ")");

            index = 0;
            int tIndex = 1000;

            int mediumTimerLimit = 10;
            int mediumTimerIndex = 0;

            foreach (docScriptInstructionCompiled instruction in compiled)
            {
                try
                {
                    appendTypeKind kind = instruction.type.getAppendTypeKind();

                    if (doVerboseLog)
                    {
                        log(index.ToString("D4") + " " + instruction.ToString(docScriptInstructionTextFormatEnum.meta));
                    }

                    //afinal = appendType.none;

                    appendType final = executeOnce(instruction, kind);

                    if (final != appendType.none)
                    {
                        final = runStyleInstruction(instruction);
                    }

                    if (final == appendType.none)
                    {
                    }
                    else
                    {
                        var scopeLevel = scope.elementLevel;

                        foreach (var it in unit.outputByLevel[scopeLevel])
                        {
                            deliveryUnitItemSimpleRenderOutput output = it as deliveryUnitItemSimpleRenderOutput;

                            if (output != null)
                            {
                                output.executeScriptInstruction(this, instruction);
                                final = appendType.none;
                                //  builder = output.builder;
                            }
                        }
                    }

                    if (executionStopFlagCheck())
                    {
                        log("Execution is stopped by executionStopFlag!");
                        break;
                    }

                    index++;
                }
                catch (Exception ex)
                {
                    string msg = Environment.NewLine + "Report script execution [" + index + "/" + compiled.Count() + "] error. Instruction: [" + instruction.ToString(docScriptInstructionTextFormatEnum.cs_compose) + "]";
                    msg = msg.addLine("-- scoped meta object: path:[" + scope.path + "] -- [" + scope.name + "] -- [" + scope.GetType().Name + "]");
                    msg = msg.addLine("-- directory: [" + directoryScope.FullName + "]");
                    msg = msg.addLine("-- exception: [" + ex.GetType().Name + "] => [" + ex.Message + "]");

                    var axe = new aceReportException(msg + "Report instruction [" + instruction.type.ToString() + "] exception");
                    //if (axe.callInfo != null)
                    //{
                    //    msg = msg.addLine("-- source of ex: [" + axe.callInfo.sourceCodeLine + "]");
                    //    msg = msg.addLine("-- source file:  [" + axe.callInfo.Filepath + "]");
                    //    msg = msg.addLine("-- source line:  [" + axe.callInfo.line + "]");
                    //    msg = msg.addLine("-- source class:  [" + axe.callInfo.className + "]");
                    //}

                    log(msg + Environment.NewLine);
                    string path = "errorReport_" + index.ToString() + ".txt";
                    path = directoryScope.FullName.add(path, "\\");
                    msg.saveStringToFile(path, getWritableFileMode.autoRenameExistingOnOtherDate, Encoding.UTF8);

                    if (errorPolicy.doThrow())
                    {
                        throw axe;
                    }
                    executionError("Internal exception during an instruction execution", instruction, ex);
                }

                #region ----------------------------------

                if (compiled.Count() > 1000)
                {
                    if (tIndex > 0)
                    {
                        tIndex--;
                    }
                    else
                    {
                        mediumTimerIndex++;
                        double ratio = ((double)index) / ((double)compiled.Count());
                        aceLog.log("Report generation at [" + ratio.ToString("P") + "] done");
                        tIndex = 1000;
                    }
                }
                if (mediumTimerIndex > mediumTimerLimit)
                {
                    var memBefore = GC.GetTotalMemory(false);
                    GC.Collect();
                    var memBefore2 = memBefore - GC.GetTotalMemory(false);
                    aceLog.log("-- garbage collector invoked - memory released: " + memBefore2.getMByteCountFormated());
                    // aceLog.saveAllLogs(true);
                    mediumTimerIndex = 0;
                }

                #endregion ----------------------------------
            }

            GC.Collect();
            GC.WaitForFullGCComplete();

            logEndPhase();

            AppendPairs(data, false, " -> ");

            log("Completed");

            foreach (IDeliveryUnitItem item in unit.items)
            {
                item.reportFinishedOperation(this);
            }

            // aceLog.consoleControl.removeFromOutput(this);
        }
Exemple #4
0
        /// <summary>
        /// Executes the prepare procedure
        /// </summary>
        public void executePrepare()
        {
            //includeList = new metaLinkCollection();
            //renders = new deliveryUnitRenderCollection();
            itemByLevel   = new deliveryUnitItemByLevels();
            outputByLevel = new deliveryUnitItemByLevels();

            foreach (deliveryUnitItem item in items)
            {
                if (item.levels.Any())
                {
                    foreach (var lev in item.levels)
                    {
                        itemByLevel[lev].Add(item);
                    }
                }
                else
                {
                    switch (item.location)
                    {
                    case deliveryUnitItemLocationBase.localResource:
                    case deliveryUnitItemLocationBase.externalWebResource:
                        itemByLevel[reportElementLevel.page].Add(item);
                        break;

                    case deliveryUnitItemLocationBase.globalDeliveryResource:
                        itemByLevel[reportElementLevel.delivery].Add(item);
                        break;

                    case deliveryUnitItemLocationBase.globalDocumentResource:
                        itemByLevel[reportElementLevel.document].Add(item);
                        break;

                    case deliveryUnitItemLocationBase.globalDocumentSetResource:
                        itemByLevel[reportElementLevel.documentSet].Add(item);
                        break;

                    case deliveryUnitItemLocationBase.globalDeliveryContent:

                        if (item is deliveryUnitItemFileOutput)
                        {
                            deliveryUnitItemFileOutput item_deliveryUnitItemFileOutput = (deliveryUnitItemFileOutput)item;
                            if (item_deliveryUnitItemFileOutput.isDataFieldMode)
                            {
                                itemByLevel[reportElementLevel.delivery].Add(item);
                            }
                        }

                        break;

                    case deliveryUnitItemLocationBase.unknown:

                        break;
                    }
                }

                if (item is deliveryUnitItemFileOutput)
                {
                    deliveryUnitItemFileOutput item_deliveryUnitItemFileOutput = (deliveryUnitItemFileOutput)item;
                    if (item_deliveryUnitItemFileOutput.isDataFieldMode)
                    {
                        // itemByLevel[reportElementLevel.deliveryInstance].Add(item);
                    }
                    else
                    {
                        outputContent.Add(item_deliveryUnitItemFileOutput);
                    }
                }

                if (item is deliveryUnitItemSimpleRenderOutput)
                {
                    deliveryUnitItemSimpleRenderOutput item_deliveryUnitItemRenderOutput = (deliveryUnitItemSimpleRenderOutput)item;

                    outputByLevel.Add(item_deliveryUnitItemRenderOutput.levels, item);
                }

                foreach (IDeliveryUnitItem it in items)
                {
                    if (it is IDeliverySupportFile)
                    {
                        IDeliverySupportFile it_IDeliverySupportFile = (IDeliverySupportFile)it;
                        if (!includeItems[it_IDeliverySupportFile.linkType].Contains(it_IDeliverySupportFile))
                        {
                            includeItems[it_IDeliverySupportFile.linkType].Add(it_IDeliverySupportFile);
                        }
                    }
                }
            }
        }