private XElement ProcessAttachment(SmsAttachment item) { _logger.LogInformation("Processing attachment '{FileName}',MIME type='{MimeType}'", item.TransferName, item.MimeType); XElement result; if (item.MimeType.StartsWith("image/")) { result = HtmlGenerator.CreateImageElement(item.TransferName); } else if (item.MimeType.StartsWith("video/")) { result = HtmlGenerator.CreateVideoElement(item.TransferName, item.MimeType); } else if (item.MimeType.StartsWith("audio/")) { result = HtmlGenerator.CreateAudioElement(item.TransferName, item.MimeType); } else { result = HtmlGenerator.CreateAnchorElement(item.TransferName); } return(result); }
public IEnumerable <SmsAttachment> GetMessageAttachments(int messageId) { var command = Connection.CreateCommand(); command.CommandText = "SELECT " + "ROWID," + "guid," + "filename," + "mime_type," + "transfer_state," + "transfer_name" + " FROM attachment" + " inner join message_attachment_join" + " ON attachment.ROWID=message_attachment_join.attachment_id" + " WHERE message_attachment_join.message_id=@param1"; command.Parameters.AddWithValue("@param1", messageId); using (var reader = command.ExecuteReader()) { while (reader.Read()) { var result = new SmsAttachment { Id = reader.GetInt32(0), Guid = reader.GetGuidAtStartOfString(1), FileName = reader.GetValueOrDefault <string>(2), MimeType = reader.GetValueOrDefault <string>(3), TransferState = reader.GetInt32(4), TransferName = reader.GetValueOrDefault <string>(5), }; yield return(result); } } }