From bd62aabfc5aef68f7e4b29425fb86174a03cf42d Mon Sep 17 00:00:00 2001 From: Matthew Wilson Date: Fri, 21 Apr 2006 15:26:33 +0000 Subject: [PATCH] caching for verifyAllPrerequisites --- lib/WebGUI/Asset/Wobject/EventManagementSystem.pm | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm index 1cfe6a978..a6a14e98b 100644 --- a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm +++ b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm @@ -19,6 +19,7 @@ use base 'WebGUI::Asset::Wobject'; use Tie::IxHash; use WebGUI::HTMLForm; use JSON; +use WebGUI::Cache; use WebGUI::International; use WebGUI::Commerce::ShoppingCart; use WebGUI::Commerce::Item; @@ -1150,6 +1151,12 @@ sub resolveConflictForm { sub verifyAllPrerequisites { my $self = shift; my $returnArrayFlag = shift; + my $cache; + if ($returnArrayFlag) { + $cache = WebGUI::Cache->new($session,["verifyAllPrerequisites",$returnArrayFlag]); + my $eventData = $cache->get; + return $eventData->{$returnArrayFlag} if defined $eventData->{$returnArrayFlag}; + } #use Data::Dumper; #start with the events in the scratch cart. See if all prerequisites are met my $startingEvents = {}; @@ -1178,8 +1185,11 @@ sub verifyAllPrerequisites { } my $rowsLoop = []; - my @silliness = keys %$lastResults; - return \@silliness if $returnArrayFlag; + if ($returnArrayFlag) { + my @silliness = keys %$lastResults; + $cache->set({$returnArrayFlag=>\@silliness}, 60*60*24*360); + return \@silliness; + } foreach (keys %$lastResults) { my $details = $lastResults->{$_}; push(@$rowsLoop, {