Unsorted
--------

- How do we filter the lookup items for report filters 'on the fly'?
	- Create service that takes report name (in Reportr.Registration and then report builder in core Reportr) plus current filter values and returns a new (updated) report filter

- How do we auto unregister or update reports, roles, categories, category and role assignments?
	- Auto remove:
		- ReportCategorizer.AutoAssignReports
		- ReportRoleManager.AutoRegisterRoles
		- ReportRoleManager.AutoAssignRolesToReports
		- ReportRoleManager - update constraints on existing assignments

- Create ability to log all registered report generations with their data so we can keep an audit trail for security reasons. E.g. report to show customer information, gets leaked. Logs can be checked to see who generated that data and when so it can be traced.


High Priority
-------------

- Look into schema mapping issue for Entity Framework in EfDataSource
	https://github.com/schneidenbach/EntityFramework.Metadata/blob/master/src/EntityFramework.Metadata/Mappers/MapperBase.cs#L479

- Create DataSource and Query implementations in:
	- Data.Csv
	- Data.Json
	- Data.Xml


Templates
---------

- How do report template contents tell us their size? How about optional "promised" row height? table header and footer height? Chart height? Then we can calculate page sizes

- Template page optional size (units e.g. %, pixels cm etc) of width and height so we can auto paginate
	- Also add margin details (for printing and screen padding)


Rendering
---------

- Design report auto export mechanism (e.g. CSV, XML, JSON etc)
	- See https://github.com/danielpalme/ReportGenerator


Low Priority
------------

- Optimization
	- Cache query results where the query and parameter values are identical (then we can reuse the same data multiple times)
	- Can we run multiple queries concurrently (i.e. multi threaded) to improve performance?

- Create report component mocking (e.g. generate fake data for chart) for report building and testing

- Find a more generic way around using JsonObjectAttribute and JsonIgnoreAttribute for serializing using JSON.NET

- Create Report Definition Language (RDL)
	- See docs\Brainstorming\RDL Brainstorm Example.rdl
	- https://docs.microsoft.com/en-us/sql/reporting-services/reports/report-definition-language-ssrs?view=sql-server-2017
	- https://github.com/Microsoft/sql-server-samples/tree/master/samples/features/r-services/ssms-custom-reports
