private IEnumerable <KeyValuePair <string, string> > GetQueryParameters(QueryScopeReportBlock block, IReadOnlyDictionary <string, object> parameterValues) { var queryParameters = new List <KeyValuePair <string, string> >(); if (block.Parameters == null) { return(queryParameters); } foreach (var parameter in block.Parameters) { var template = _templateBuilder.Build(parameter.Template); foreach (var parameterValue in parameterValues) { template.Add(parameterValue.Key, parameterValue.Value); } try { var parameterValue = template.Render(); queryParameters.Add(new KeyValuePair <string, string>(parameter.Key, parameterValue)); } catch (Exception) { // TODO: typed exception throw new Exception($"Failed to render report query block parameter template. BlockId='{block.Id}'"); } } return(queryParameters); }
protected override void ExecuteStage([NotNull] ReportBundle reportBundle) { if (reportBundle == null) { throw new ArgumentNullException(nameof(reportBundle)); } if (string.IsNullOrEmpty(reportBundle.Rule?.ReportTitle)) { reportBundle.Title = reportBundle.Report.DisplayName; return; } var titleTemplate = _templateBuilder.Build(reportBundle.Rule.ReportTitle); foreach (var parameter in reportBundle.ParameterValues) { titleTemplate.Add(parameter.Key, parameter.Value); } foreach (var queryResult in reportBundle.QueryResults) { titleTemplate.Add(queryResult.Key, queryResult.Result.Items); } reportBundle.Title = titleTemplate.Render(); }
public Task Handle(RegisterUserCommand command) { var emailMessage = new EmailMessage { Content = _templateBuilder.Build(Template.Get(), new TemplateModel { Title = "Email Confirmation", Content = "Please confirm your email by clicking like below.", Link = $"{command.SiteAddress}/Account/ConfirmEmail?emailId={command.EmailId}&token={command.ConfirmationToken}", LinkName = "Confirm" }) }; emailMessage.To.Add(command.EmailId); emailMessage.Subject = "Email Confirmation"; _emailProvider.Send(1, emailMessage); return(Task.CompletedTask); }
public void Vizualize([NotNull] HtmlTextWriter htmlTextWriter, [NotNull] BoolReportBlock block, IReadOnlyDictionary <string, object> parameterValues, IReadOnlyCollection <ReportQueryResult> queryResults, long userId) { if (htmlTextWriter == null) { throw new ArgumentNullException(nameof(htmlTextWriter)); } if (block == null) { throw new ArgumentNullException(nameof(block)); } var templateSource = $"$if({block.Variable})$1$endif$"; var template = _templateBuilder.Build(templateSource); if (parameterValues != null) { foreach (var parameterValue in parameterValues) { template.Add(parameterValue.Key, parameterValue.Value); } } var result = template.Render(); if (result.Equals("1")) { if (block.Positive != null) { _reportBlockVizualizationManager.Vizualize( htmlTextWriter, (dynamic)block.Positive, parameterValues, queryResults, userId); } } else { if (block.Negative != null) { _reportBlockVizualizationManager.Vizualize( htmlTextWriter, (dynamic)block.Negative, parameterValues, queryResults, userId); } } }
public void ShouldReturnTemplateWithTitle() { const string titleTemplate = "title"; const string bodyTemplate = "body"; var result = _target.Build(titleTemplate, bodyTemplate); result.Should().NotBeNull(); result.Should().BeOfType <TemplateWithTitle>(); }
protected BodyBuilder GetBody(string templateFile) { var builder = new BodyBuilder(); string path = $"{HostingEnvironment.WebRootPath}/emailTemplate/{templateFile}"; using (StreamReader sourceReader = System.IO.File.OpenText(path)) { builder.HtmlBody = TemplateBuilder.Build(sourceReader.ReadToEnd()); } return(builder); }
private string GetTemplate(HtmlReportBlock block, IReadOnlyDictionary <string, object> parameterValues, IReadOnlyCollection <ReportQueryResult> queryResults) { var template = _templateBuilder.Build(block.Template); RenderParameters(parameterValues, template); RenderQueryResults(queryResults, template); return(template.Render()); }
public void Vizualize([NotNull] HtmlTextWriter htmlTextWriter, [NotNull] LinkReportBlock block, IReadOnlyDictionary <string, object> parameterValues, IReadOnlyCollection <ReportQueryResult> queryResults, long userId) { if (htmlTextWriter == null) { throw new ArgumentNullException(nameof(htmlTextWriter)); } if (block == null) { throw new ArgumentNullException(nameof(block)); } if (block.Target == null) { throw new EmptyLinkReportBlockTargetException(block.Id); } if (block.Child == null) { throw new EmptyLinkReportBlockChildException(block.Id); } var template = _templateBuilder.Build(block.Target); if (parameterValues != null) { foreach (var parameterValue in parameterValues) { template.Add(parameterValue.Key, parameterValue.Value); } } var renderedTemplate = template.Render(); renderedTemplate = _htmlEncoder.Encode(renderedTemplate); htmlTextWriter.AddAttribute(HtmlTextWriterAttribute.Href, renderedTemplate); htmlTextWriter.RenderBeginTag(HtmlTextWriterTag.A); _blockVizualizationManager.Vizualize( htmlTextWriter, (dynamic)block.Child, parameterValues, queryResults, userId); htmlTextWriter.RenderEndTag(); }
public async Task <AzureValidatedFile> Validate(string path, string contents) { var valid = new AzureValidatedFile { FilePath = path, Message = "" }; try { //load all the subtemplates and process them through var parsed = JObject.Parse(contents); var builtTemplate = _templateBuilder.Build("FullTemplate.json", contents); var result = await _restChecker.CheckArm(builtTemplate, _secrets); if (result.error != null) { valid.Failed = true; var mString = ""; if (result?.error?.details != null && result?.error?.details.Count > 0) { mString = string.Join(" \r\n ", result.error.details.Select(_ => _.message + "\r\n").ToList()); } else { mString = result.error.message; } valid.Message += $"{mString}\r\n"; } } catch (Exception ex) { valid.Failed = true; valid.Message = $"JSON is not valid or process failed -> {ex.Message}"; Debug.WriteLine(ex.Message); } return(valid); }
private string RenderTemplate(LabelReportBlock block, IReadOnlyDictionary <string, object> parameterValues) { var template = _templateBuilder.Build(block.Text); if (parameterValues == null) { return(template.Render()); } foreach (var parameterValue in parameterValues) { template.Add(parameterValue.Key, parameterValue.Value); } try { return(template.Render()); } catch (Exception) { throw new Exception($"Incorrect label template. LabelId='{block.Id}'"); } }
private ITemplateWithTitle Get(Templates template) => _templateBuilder.Build(template.Title, template.Body);