public SharePointClientDownloadData DestinationData { get; }
The download destination stream data.
This property contains a SharePointClientDownloadData object that contains the download stream information if GetDownloadStreamAsync was called to initiate the download. If DownloadFileAsync was used to initiate the download, then the value of this property will be null (Nothing in VB).
Note: You are responsible for calling System.IDisposable.Dispose on DestinationData if you subscribe to the DownloadCompleted event.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;
using Leadtools.SharePoint.Client;
public void SharePointClientDownloadStreamAsyncExample()
{
// Replace SHAREPOINT_SITE_URI with a valid URL to a SharePoint site, for example
// http://SiteCollection/MySite
Uri siteUri = new Uri(SHAREPOINT_SITE_URI);
// Replace SHAREPOINT_FOLDER_NAME with a valid folder on the site above, for example
// "Documents" or "Documents\Sub Documents"
string folderName = SHAREPOINT_FOLDER_NAME;
// Replace SHAREPOINT_DOCUMENT_NAME with a valid document on the folder above, for example
// MyDocument.tif
string documentName = SHAREPOINT_DOCUMENT_NAME;
// Build the full URL to the document are we going to download
UriBuilder builder = new UriBuilder(siteUri);
builder.Path = Path.Combine(builder.Path, folderName);
builder.Path = Path.Combine(builder.Path, documentName);
Uri sourceDocumentUri = builder.Uri;
SharePointClient spClient = new SharePointClient();
// Optional: Set the credentials:
spClient.Credentials = new NetworkCredential(USER_NAME, PASSWORD, DOMAIN);
// If this is a console application demo, we might exit the program before the operation completes,
// so use a wait handle to not exit this method till the opreation completes
AutoResetEvent wait = new AutoResetEvent(false);
// Download the SharePoint item to the temporary file asynchronously
spClient.DownloadCompleted += new EventHandler<SharePointClientDownloadCompletedEventArgs>(MyDownloadStreamAsyncCompleted);
spClient.GetDownloadStreamAsync(sourceDocumentUri, wait);
// Wait till the operation completes
wait.WaitOne();
wait.Close();
}
private static void MyDownloadStreamAsyncCompleted(object sender, SharePointClientDownloadCompletedEventArgs e)
{
// Remove our handler
SharePointClient spClient = sender as SharePointClient;
spClient.DownloadCompleted -= new EventHandler<SharePointClientDownloadCompletedEventArgs>(MyDownloadStreamAsyncCompleted);
if (e.Error == null && !e.Cancelled)
{
// All is OK, use RasterCodecs to get its info
using (RasterCodecs codecs = new RasterCodecs())
{
using (CodecsImageInfo imageInfo = codecs.GetInformation(e.DestinationData.Stream, true))
{
// Show the image info
Console.WriteLine("URL: {0}", e.SourceUri);
Console.WriteLine("Pages: {0}", imageInfo.TotalPages);
Console.WriteLine("Size: {0} by {1} pixels", imageInfo.Width, imageInfo.Height);
Console.WriteLine("Resolution: {0} by {1} dpi", imageInfo.XResolution, imageInfo.YResolution);
Console.WriteLine("Bits/Pixel: {0}", imageInfo.BitsPerPixel);
}
}
}
else
{
// Some error occured
if (e.Error != null)
Console.WriteLine(e.Error.Message);
else
Console.WriteLine("User cancelled");
}
// Dispose the SharePoint stream
if (e.DestinationData != null)
{
e.DestinationData.Dispose();
}
// Tell whoever is listening that we are done
EventWaitHandle wait = e.UserState as EventWaitHandle;
wait.Set();
}