NET Link Tracker
CreateExpiringDownload Method
Example 



KellermanSoftware.NetLinkTracker Namespace > LinkLogic Class : CreateExpiringDownload Method
Create a link to a download that expires after the number of specified days
Syntax
'Declaration
 
Public Function CreateExpiringDownload( _
   ByVal filePath As String, _
   ByVal expirationDays As Integer _
) As TrackedLink
'Usage
 
Dim instance As LinkLogic
Dim filePath As String
Dim expirationDays As Integer
Dim value As TrackedLink
 
value = instance.CreateExpiringDownload(filePath, expirationDays)
public TrackedLink CreateExpiringDownload( 
   string filePath,
   int expirationDays
)
public:
TrackedLink^ CreateExpiringDownload( 
   String^ filePath,
   int expirationDays
) 

Parameters

filePath
expirationDays
Example
LinkLogic linkLogic = new LinkLogic(); //Trial Mode
LinkLogic linkLogicLicensed = new LinkLogic("place user name here", "place license key here");  //License Mode
 
//Use a in memory mock database for testing
ILinkTrackerDatabaseLogic databaseLogic = new LinkTrackerMockDatabase();
 
linkLogic.DatabaseLogic = databaseLogic;
 
//Create a dummy file for testing
string filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "test.txt");
File.WriteAllText(filePath,"This is a test");
 
//Create a link to a file that will expire in 30 days
TrackedLink createdLink = linkLogic.CreateExpiringDownload(filePath, 30);
 
TrackedLink link = linkLogic.GetLinkByGuid(createdLink.LinkGuid);
LinkStatus status = linkLogic.CheckLinkStatus(link);
 
//The status will be Active
Console.WriteLine("Status: " + status);
 
//Get a friendly status for the user
Console.WriteLine("Friendly Status: " + linkLogic.GetFriendlyStatus(link));
 
//Force the link to expire
link.ExpirationDate = DateTime.Now.AddDays(-1);
databaseLogic.SaveTrackedLink(link);
 
status = linkLogic.CheckLinkStatus(link);
 
//The status will be Expired
Console.WriteLine("Status: " + status);
 
//Get a expired friendly status for the user
Console.WriteLine("Friendly Status: " + linkLogic.GetFriendlyStatus(link));
 
//Get the associated File Path
Console.WriteLine("File Path:  " + createdLink.FilePathOrUrl);
 
//This will stream the file to the browser
if (HttpContext.Current != null) //This check not needed if running in ASP.NET process
    linkLogic.ProcessLink(createdLink);
Dim linkLogic As New LinkLogic() 'Trial Mode
Dim linkLogicLicensed As New LinkLogic("place user name here", "place license key here") 'License Mode
 
'Use a in memory mock database for testing
Dim databaseLogic As ILinkTrackerDatabaseLogic = New LinkTrackerMockDatabase()
 
linkLogic.DatabaseLogic = databaseLogic
 
'Create a dummy file for testing
Dim filePath As String = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "test.txt")
File.WriteAllText(filePath,"This is a test")
 
'Create a link to a file that will expire in 30 days
Dim createdLink As TrackedLink = linkLogic.CreateExpiringDownload(filePath, 30)
 
Dim link As TrackedLink = linkLogic.GetLinkByGuid(createdLink.LinkGuid)
Dim status As LinkStatus = linkLogic.CheckLinkStatus(link)
 
'The status will be Active
Console.WriteLine("Status: " & status)
 
'Get a friendly status for the user
Console.WriteLine("Friendly Status: " & linkLogic.GetFriendlyStatus(link))
 
'Force the link to expire
link.ExpirationDate = Date.Now.AddDays(-1)
databaseLogic.SaveTrackedLink(link)
 
status = linkLogic.CheckLinkStatus(link)
 
'The status will be Expired
Console.WriteLine("Status: " & status)
 
'Get a expired friendly status for the user
Console.WriteLine("Friendly Status: " & linkLogic.GetFriendlyStatus(link))
 
'Get the associated File Path
Console.WriteLine("File Path:  " & createdLink.FilePathOrUrl)
 
'This will stream the file to the browser
If HttpContext.Current IsNot Nothing Then 'This check not needed if running in ASP.NET process
    linkLogic.ProcessLink(createdLink)
End If
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

LinkLogic Class
LinkLogic Members