public string GetTemplate(ReportTemplate template)
        {
            if (!template.IsValid())
            {
                throw new ArgumentException($"The { nameof(ReportTemplate) } provided must be a valid enum.", nameof(template));
            }
            if (Cache.TryGetValue(template, out var cachedTemplate))
            {
                return(cachedTemplate);
            }

            var resource    = GetResource(template);
            var templateStr = GetResourceAsString(resource);

            Cache.TryAdd(template, templateStr);
            return(templateStr);
        }