private PageData _gigPage;
protected PageData GigPage
{
get
{
if( _gigPage == null )
{
PageReference gigPageRef = CurrentPage.GigPageLink;
if( !PageReference.IsNullOrEmpty(gigPageRef) )
{
PageData gigPage = DataFactory.Instance.GetPage(gigPageRef);
_gigPage = gigPage;
}
}
return _gigPage;
}
}
Fetch a simple Property with Lazy loading
protected string PageHeading
{
get { return _heading ?? (_heading = CurrentPage.Heading); }
set { _heading = value; }
}
Fetch a Settingspage Lazy with cache timeout (not recommended since EPiServer handles this better)
public static class SiteHelper
{
private static SettingsPage _settingsPage;
private static DateTime _fetchTime;
public static SettingsPage GetSettingsPage()
{
const string errorMsg = "Error retrieving settingspage, contact site administrator";
try
{
if (_settingsPage != null && !TimeHasElapsed(5))
{
return _settingsPage;
}
StartPage startPage = DataFactory.Instance.GetPage(ContentReference.StartPage) as StartPage;
if (startPage != null && startPage.SettingsPage != null)
{
var page = DataFactory.Instance.GetPage(startPage.SettingsPage);
if (page is SettingsPage)
{
_settingsPage = page as SettingsPage;
_fetchTime = DateTime.UtcNow;
}
}
return _settingsPage;
}
catch (Exception e)
{
throw new Exception(errorMsg + ": " + e);
}
}
private static bool TimeHasElapsed(int timespan)
{
if (_fetchTime.AddMinutes(timespan) > DateTime.UtcNow)
{
return false;
}
return true;
}
}
No comments:
Post a Comment