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); }
public string GetPartSource(Guid id, string cid) { var result = _dbContext.Messages.FirstOrDefault(m => m.Id == id); return(Message.GetPartSource(result, cid)); }
public FileStreamResult GetPartContent(Guid id, string cid) { var result = _dbContext.Messages.FirstOrDefault(m => m.Id == id); return(Message.GetPartContent(result, cid)); }