internal bool Execute(ActionExecuteType type)
{
if(this.Context != null && this.Context.Request != null)
{
this.Writer = new StreamWriter(this.Context.Request.ResponseBody);
}
bool result = false;
if(this.NextPhase == ActionPhase.Filters)
{
try
{
this.executeFilters();
result = true;
}finally
{
this.NextPhase = ActionPhase.Execute;
}
if (!result)
return result;
}
/*
if(this.NextPhase == ActionPhase.Authenticate)
{
try
{
result = this.OnAuthenticate();
}finally
{
this.NextPhase = ActionPhase.Lookup;
}
}
if(!result)return result;
if(this.NextPhase == ActionPhase.Lookup)
{
try
{
var lresult =this.OnLookup();
result = lresult == ActionLookupResult.Found || lresult == ActionLookupResult.Skipped;
}finally
{
this.NextPhase = ActionPhase.Authorize;
}
}
if(!result)return result;
if(this.NextPhase == ActionPhase.Authorize)
{
try
{
result =this.OnAuthorize();
}finally
{
this.NextPhase = ActionPhase.Execute;
}
}
if(!result)return result;
*/
if(!this.Lookup)
{
this.OnLookup();
}
if(type == ActionExecuteType.Complete && this.NextPhase == ActionPhase.Execute)
{
try
{
this.OnExecute();
result = true;
}finally
{
this.NextPhase = ActionPhase.Finish;
}
}
return result;
}