Пример #1
0
        public string GetMessageHtml(Guid id)
        {
            var result = _dbContext.Messages.FirstOrDefault(m => m.Id == id);

            var html = Message.GetHtml(result);

            if (html == null)
            {
                html = "<pre>" + HtmlDocument.HtmlEncode(Message.GetText(result)) + "</pre>";
            }

            var doc = new HtmlDocument();

            doc.LoadHtml(html);

            var imageElements = doc.DocumentNode.SelectNodes("//img[starts-with(@src, 'cid:')]");

            if (imageElements != null)
            {
                foreach (var imageElement in imageElements)
                {
                    var cid = imageElement.Attributes["src"].Value
                              .Replace("cid:", "", StringComparison.OrdinalIgnoreCase);
                    imageElement.Attributes["src"].Value = $"/api/Messages/{id.ToString()}/part/{cid}/content";
                }
            }

            return(doc.DocumentNode.OuterHtml);
        }
Пример #2
0
        public string GetPartSource(Guid id, string cid)
        {
            var result = _dbContext.Messages.FirstOrDefault(m => m.Id == id);

            return(Message.GetPartSource(result, cid));
        }
Пример #3
0
        public FileStreamResult GetPartContent(Guid id, string cid)
        {
            var result = _dbContext.Messages.FirstOrDefault(m => m.Id == id);

            return(Message.GetPartContent(result, cid));
        }