Download an attachment that is specified as part of a message received. You can obtain the parameters from the MessageReceived event's arguments AttachmentInfo array.

Namespace:  Linxter.SDK
Assembly:  Linxter.SDK (in Linxter.SDK.dll) Version: 1.5.0.0 (1.5.0.0)

Syntax

C#
Attachment DownloadAttachment(
	AttachmentInfo attachInfo
)
Visual Basic (Declaration)
Function DownloadAttachment ( _
	attachInfo As AttachmentInfo _
) As Attachment

Parameters

attachInfo
Type: Linxter.Common.Entities..::.AttachmentInfo
The AttachmentInfo data structure returned with a MessageReceived event that you want to download.

Return Value

The attachment object.

Examples

CopyC#
ILinxterMessaging m_messaging;

public void DownloadAttachmentExample()
{
    // Set up Linxter
    m_messaging = new LinxterSDK();

    // Hook MessageReceived event
    m_messaging.MessageReceived +=
        new Action<Linxter.SDK.EventArgs.MessageReceivedEventArgs>(OnNewMessageReceived);
}

void OnNewMessageReceived(Linxter.SDK.EventArgs.MessageReceivedEventArgs obj)
{
    // Save attachment(s)
    Console.WriteLine(string.Format("New message received:\n{0}", obj.Body));

    foreach (AttachmentInfo item in obj.Attachments)
    {
        // Download each attachment and save them in C:\MessageAttachments
        Attachment thisAttachment = m_messaging.DownloadAttachment(item);

        string filename = Path.Combine("C:\\MessageAttachments", Path.GetFileName(thisAttachment.FileName));
        try
        {
            System.IO.File.WriteAllBytes(filename, thisAttachment.Data);
            Console.WriteLine(string.Format("Saved attachment ID: {0}", item.AttachmentId));
            Console.WriteLine(string.Format("  File: {0}", filename));
            Console.WriteLine(string.Format("  From: {0}", item.SenderInstanceId));
            Console.WriteLine(string.Format("  Program ID: {0}", item.SenderProgramId));
            Console.WriteLine(string.Format("  Message ID: {0}", item.MessageId));
            Console.WriteLine(string.Format("  Size: {0}", item.SizeBytes));
            Console.WriteLine(string.Format("  Created date: {0}", item.CreatedDate));
            if (item.Tags.Length > 0)
            {
                Console.WriteLine("  Tags: ");
                foreach (string tag in item.Tags)
                {
                    Console.WriteLine(string.Format("   {0}", tag));
                }
            }
        }
        catch (IOException ex)
        {
            Console.WriteLine(string.Format("Save attachment '{0}' failed. Error message: {1}",
                filename, ex.Message), "Cannot save", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }
}
CopyVB.NET
Private m_messaging As ILinxterMessaging

Public Sub DownloadAttachmentExample()
    ' Set up Linxter
    m_messaging = New LinxterSDK()

    ' Hook MessageReceived event
    AddHandler m_messaging.MessageReceived, AddressOf OnNewMessageReceived
End Sub

Private Sub OnNewMessageReceived(ByVal obj As Linxter.SDK.EventArgs.MessageReceivedEventArgs)
    ' Save attachment(s)
    MessageBox.Show(String.Format("New message received:" & vbLf & "{0}", obj.Body))

    For Each item As AttachmentInfo In obj.Attachments
        ' Download each attachment and save them in C:\MessageAttachments
        Dim thisAttachment As Attachment = m_messaging.DownloadAttachment(item)

        Dim filename As String = Path.Combine("C:\MessageAttachments", Path.GetFileName(thisAttachment.FileName))
        Try
            System.IO.File.WriteAllBytes(filename, thisAttachment.Data)
            Console.WriteLine(String.Format("Saved attachment ID: {0}", item.AttachmentId))
            Console.WriteLine(String.Format("  File: {0}", filename))
            Console.WriteLine(String.Format("  From: {0}", item.SenderInstanceId))
            Console.WriteLine(String.Format("  Program ID: {0}", item.SenderProgramId))
            Console.WriteLine(String.Format("  Message ID: {0}", item.MessageId))
            Console.WriteLine(String.Format("  Size: {0}", item.SizeBytes))
            Console.WriteLine(String.Format("  Created date: {0}", item.CreatedDate))
            If item.Tags.Length > 0 Then
                Console.WriteLine("  Tags: ")
                For Each tag As String In item.Tags
                    Console.WriteLine(String.Format("   {0}", tag))
                Next
            End If
        Catch ex As IOException
            Console.WriteLine(String.Format("Save attachment '{0}' failed. Error message: {1}", filename, ex.Message), "Cannot save", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    Next item
End Sub

See Also