From 629acaceb9e22c7bfb7681264a62f5472d54158f Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Wed, 23 Sep 2020 18:44:30 +0000 Subject: [PATCH] --- devdocs/deploy.txt | 10 ++++++- server/AyaNova/biz/ReportBiz.cs | 38 ++++++++++++++++++++++----- server/AyaNova/util/AyaNovaVersion.cs | 2 +- 3 files changed, 42 insertions(+), 8 deletions(-) diff --git a/devdocs/deploy.txt b/devdocs/deploy.txt index c6d6d343..09cdf48d 100644 --- a/devdocs/deploy.txt +++ b/devdocs/deploy.txt @@ -6,9 +6,14 @@ PUBLISH TO DEVOPS STEPS CLIENT +=-=-=-= - TURN OFF DEV MODE IN MAIN.JS + +- BUMP PACKAGE.JSON version number + - BUMP CLIENT VERSION NUMBER + - BUILD RELEASE - Now all automated, just run buildrelease.bat in client project folder - OLD MANUAL STEPS: @@ -19,7 +24,10 @@ CLIENT - Copy build from C:\data\code\raven\app\ayanova\dist to server wwwRoot folder: C:\data\code\raven\server\AyaNova\wwwroot SERVER -- BUMP VERSION NUMBER FIRST +=-=-=- + +- BUMP VERSION NUMBER + - BUILD RELEASE - Now automated, run buildrelease.bat in server project folder - OLD MANUAL STEPS: diff --git a/server/AyaNova/biz/ReportBiz.cs b/server/AyaNova/biz/ReportBiz.cs index 7ec97a43..42f71a00 100644 --- a/server/AyaNova/biz/ReportBiz.cs +++ b/server/AyaNova/biz/ReportBiz.cs @@ -116,7 +116,7 @@ namespace AyaNova.Biz newObject.Name = newUniqueName; // This was stupid considering JObject can serialize directly to a report type //but leaving in for a little while just to be sure it's all good - + // newObject.Active = (bool)o["Active"]; // newObject.JsHelpers = (string)o["JsHelpers"]; // newObject.JsPrerender = (string)o["JsPrerender"]; @@ -417,15 +417,40 @@ namespace AyaNova.Biz await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision); } + System.Text.StringBuilder PageLog = new System.Text.StringBuilder(); //API DOCS http://www.puppeteersharp.com/api/index.html log.LogDebug($"Launching headless Chrome now:"); using (var browser = await Puppeteer.LaunchAsync(lo)) using (var page = await browser.NewPageAsync()) { + try { + //info and error logging + page.Console += async (sender, args) => + { + switch (args.Message.Type) + { + case ConsoleType.Error: + try + { + var errorArgs = await Task.WhenAll(args.Message.Args.Select(arg => arg.ExecutionContext.EvaluateFunctionAsync("(arg) => arg instanceof Error ? arg.message : arg", arg))); + PageLog.AppendLine($"ERROR: {args.Message.Text} args: [{string.Join(", ", errorArgs)}]"); + } + catch { } + break; + case ConsoleType.Warning: + PageLog.AppendLine($"WARNING: {args.Message.Text}"); + break; + default: + PageLog.AppendLine($"INFO: {args.Message.Text}"); + + + break; + } + }; log.LogDebug($"Preparing page: adding base reporting scripts to page"); @@ -618,10 +643,6 @@ namespace AyaNova.Biz log.LogDebug($"Calling render page contents to PDF"); await page.PdfAsync(outputFullPath, PdfOptions); - //close the browser - // log.LogDebug($"Closing browser"); - // await browser.CloseAsync(); - log.LogDebug($"Completed, returning results"); return outputFileName; } @@ -635,12 +656,17 @@ namespace AyaNova.Biz //This is the error when a helper is used on the template but doesn't exist: //Evaluation failed: d //(it might also mean other things wrong with template) - + if (PageLog.Length > 0) + { + log.LogInformation($"Error rendering report \"{report.Name}\": "); + log.LogInformation(PageLog.ToString()); + } // var v=await page.GetContentAsync(); throw; } finally { + log.LogDebug($"Closing browser"); await browser.CloseAsync(); } } diff --git a/server/AyaNova/util/AyaNovaVersion.cs b/server/AyaNova/util/AyaNovaVersion.cs index dada448b..92acdaf4 100644 --- a/server/AyaNova/util/AyaNovaVersion.cs +++ b/server/AyaNova/util/AyaNovaVersion.cs @@ -5,7 +5,7 @@ namespace AyaNova.Util /// internal static class AyaNovaVersion { - public const string VersionString = "8.0.0-alpha.19"; + public const string VersionString = "8.0.0-alpha.20"; public const string FullNameAndVersion = "AyaNova server " + VersionString; }//eoc }//eons \ No newline at end of file