Exemplo n.º 1
0
        public async Task <String> ResolveDataModelAsync(TemplatedMessage msg, String text)
        {
            if (text.IndexOf("{{") == -1)
            {
                return(text);
            }
            var dm = await msg.GetDataModelAsync(_dbContext, _msgParams);

            return(dm.Root.Resolve(text));
        }
Exemplo n.º 2
0
        public async Task <Stream> ResolveReportAsync(TemplatedMessage msg, MessageReport rep)
        {
            if (rep == null)
            {
                return(null);
            }
            _reportHelper.SetupLicense();
            var dm = await msg.GetDataModelAsync(_dbContext, _msgParams);

            // get report source
            using (Stream input = await ResolveStreamStringAsync(msg, rep.Report))
            {
                if (input == null)
                {
                    throw new MessagingException($"ReportStream not found ({rep.Report}).");
                }
                // get report datamodel
                IDataModel repDataModel = null;
                if (rep.Model != null)
                {
                    var repPrms = new ExpandoObject();
                    if (rep.Model.Parameters != null)
                    {
                        foreach (var p in rep.Model.Parameters)
                        {
                            repPrms.Set(p.Key, await ResolveAsync(msg, p.Value?.Value));
                        }
                    }
                    repDataModel = await _dbContext.LoadModelAsync(rep.Model.Source, $"[{rep.Model.Schema}].[{rep.Model.Model}.Report]", repPrms);
                }
                var ms      = new MemoryStream();
                var repName = await _reportHelper.ExportDocumentAsync(input, repDataModel, ms);

                ms.Seek(0, SeekOrigin.Begin);
                return(ms);
            }
        }
Exemplo n.º 3
0
        public async Task <Stream> ResolveStreamAsync(TemplatedMessage msg, String text)
        {
            if (text == null)
            {
                return(null);
            }
            if (text.StartsWith("`"))
            {
                text = text.Substring(1);
            }
            if (text.IndexOf("{{") == -1)
            {
                return(null);
            }
            var dm = await msg.GetDataModelAsync(_dbContext, _msgParams);

            var bytes = dm.Root.Eval <Byte[]>(text.Substring(2, text.Length - 4));

            if (bytes == null || bytes.Length == 0)
            {
                return(null);
            }
            return(new MemoryStream(bytes));
        }
Exemplo n.º 4
0
        public async Task <Stream> ResolveStreamStringAsync(TemplatedMessage msg, String text)
        {
            if (text == null)
            {
                return(null);
            }
            if (text.StartsWith("`"))
            {
                text = text.Substring(1);
            }
            if (text.IndexOf("{{") == -1)
            {
                return(null);
            }
            var dm = await msg.GetDataModelAsync(_dbContext, _msgParams);

            var data = dm.Root.Eval <String>(text.Substring(2, text.Length - 4));

            if (String.IsNullOrEmpty(data))
            {
                return(null);
            }
            return(new MemoryStream(Encoding.UTF8.GetBytes(data)));
        }