diff --git a/Advanced/CsvStreaming/CsvStreaming.csproj b/Advanced/CsvStreaming/CsvStreaming.csproj
index c5b1981c..c3781570 100644
--- a/Advanced/CsvStreaming/CsvStreaming.csproj
+++ b/Advanced/CsvStreaming/CsvStreaming.csproj
@@ -40,7 +40,7 @@
True
- ..\..\packages\Templater.6.1.0\lib\Net40\NGS.Templater.dll
+ ..\..\packages\Templater.6.2.0\lib\Net40\NGS.Templater.dll
False
diff --git a/Advanced/CsvStreaming/packages.config b/Advanced/CsvStreaming/packages.config
index b7452d3b..3d264873 100644
--- a/Advanced/CsvStreaming/packages.config
+++ b/Advanced/CsvStreaming/packages.config
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/Advanced/CsvStreaming/pom.xml b/Advanced/CsvStreaming/pom.xml
index f1c77c43..87259b73 100644
--- a/Advanced/CsvStreaming/pom.xml
+++ b/Advanced/CsvStreaming/pom.xml
@@ -4,7 +4,7 @@
hr.ngs.templater.example
csv-streaming-example
jar
- 6.1.0
+ 6.2.0
CSV streaming
https://github.com/ngs-doo/TemplaterExamples
diff --git a/Advanced/CsvStreaming/src/main/java/hr/ngs/templater/example/CsvStreamingExample.java b/Advanced/CsvStreaming/src/main/java/hr/ngs/templater/example/CsvStreamingExample.java
index c05dd244..e1e02e31 100644
--- a/Advanced/CsvStreaming/src/main/java/hr/ngs/templater/example/CsvStreamingExample.java
+++ b/Advanced/CsvStreaming/src/main/java/hr/ngs/templater/example/CsvStreamingExample.java
@@ -18,7 +18,7 @@
public class CsvStreamingExample {
- static class Quoter implements IDocumentFactoryBuilder.ILowLevelReplacer {
+ static class Quoter implements IDocumentFactoryBuilder.LowLevelReplacer {
@Override
public Object replace(Object value, String tag, String[] metadata) {
@@ -32,7 +32,7 @@ public Object replace(Object value, String tag, String[] metadata) {
return value;
}
}
- static class NumberAsComma implements IDocumentFactoryBuilder.ILowLevelReplacer {
+ static class NumberAsComma implements IDocumentFactoryBuilder.LowLevelReplacer {
@Override
public Object replace(Object value, String tag, String[] metadata) {
diff --git a/Advanced/DepartmentReport/DepartmentReport.csproj b/Advanced/DepartmentReport/DepartmentReport.csproj
index 920c6a2d..bde15b05 100644
--- a/Advanced/DepartmentReport/DepartmentReport.csproj
+++ b/Advanced/DepartmentReport/DepartmentReport.csproj
@@ -36,7 +36,10 @@
- ..\..\packages\Templater.6.1.0\lib\Net40\NGS.Templater.dll
+ ..\..\packages\Templater.6.2.0\lib\Net40\NGS.Templater.dll
+
+
+ ..\..\packages\NReco.LambdaParser.1.0.10\lib\portable-net40+sl5+win8+wp8+wpa81\NReco.LambdaParser.dll
diff --git a/Advanced/DepartmentReport/Readme.md b/Advanced/DepartmentReport/Readme.md
index bfd74949..5a442f5a 100644
--- a/Advanced/DepartmentReport/Readme.md
+++ b/Advanced/DepartmentReport/Readme.md
@@ -56,3 +56,7 @@ This can be used for various purposes:
* calling methods with arguments (unlike only being able to use zero method navigation)
* various other complex logic
+There are two navigation plugin implementations in the project:
+
+ * sort - using simplistic reflection implementation
+ * filter - using expression parsing libraries
diff --git a/Advanced/DepartmentReport/packages.config b/Advanced/DepartmentReport/packages.config
index c2d6a5a7..ca804358 100644
--- a/Advanced/DepartmentReport/packages.config
+++ b/Advanced/DepartmentReport/packages.config
@@ -1,4 +1,5 @@
-
+
+
\ No newline at end of file
diff --git a/Advanced/DepartmentReport/pom.xml b/Advanced/DepartmentReport/pom.xml
index 89aff44e..8d873c0b 100644
--- a/Advanced/DepartmentReport/pom.xml
+++ b/Advanced/DepartmentReport/pom.xml
@@ -4,7 +4,7 @@
hr.ngs.templater.example
department-report-example
jar
- 6.1.0
+ 6.2.0
DepartmentReportExample
https://github.com/ngs-doo/TemplaterExamples
diff --git a/Advanced/DepartmentReport/result.xlsx b/Advanced/DepartmentReport/result.xlsx
index e61296a5..7c2d802f 100644
Binary files a/Advanced/DepartmentReport/result.xlsx and b/Advanced/DepartmentReport/result.xlsx differ
diff --git a/Advanced/DepartmentReport/src/Program.cs b/Advanced/DepartmentReport/src/Program.cs
index 6345c9b8..0016ebbf 100644
--- a/Advanced/DepartmentReport/src/Program.cs
+++ b/Advanced/DepartmentReport/src/Program.cs
@@ -1,8 +1,11 @@
-using System.Collections;
+using System;
+using System.Collections;
+using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using NGS.Templater;
+using NReco.Linq;
namespace DepartmentReport
{
@@ -64,16 +67,28 @@ public Task(string id, decimal estimated, decimal spent)
public static void Main(string[] args)
{
+ var company = GetCompany();
using (var fis = File.OpenRead("template/departments.xlsx"))
using (var fos = File.OpenWrite("departments.xlsx"))
using (var doc = Configuration
.Builder
- .NavigateSeparator(':')
+ .WithMatcher(@"[\w\s \.,:?!+\*-<>=()]+")
+ .NavigateSeparator(':', null)
.Include(SortExpression)
+ .Include(FilterExpression)
.Build()
.Open(fis, "xlsx", fos))
- doc.Process(GetCompany());
-
+ {
+ doc.Process(company);
+ var flattened =
+ from d in company.department
+ from t in d.team
+ from p in t.project
+ from e in p.epic
+ from k in e.task
+ select new { department = d, team = t, project = p, epic = e, task = k };
+ doc.Process(new { flatten = flattened });
+ }
Process.Start(new ProcessStartInfo("departments.xlsx") { UseShellExecute = true });
}
@@ -86,6 +101,25 @@ static object SortExpression(object parent, object value, string member, string
return col.OfType