Sage.SageContext.SubstituteExtensionPath C# (CSharp) Method

SubstituteExtensionPath() private method

private SubstituteExtensionPath ( ) : bool
return bool
        private bool SubstituteExtensionPath()
        {
            try
            {
                string extensionDirectory = this.Path.GetRelativeWebPath(this.Path.ExtensionPath, true);
                if (File.Exists(this.Request.PhysicalPath) || this.Request.Path.Contains(extensionDirectory, true))
                    return false;

                string requestedFile = this.Request.Path.ToLower().Replace(this.Request.ApplicationPath.ToLower(), string.Empty).Trim('/');
                foreach (string extensionId in Project.Extensions.Keys)
                {
                    ExtensionInfo info = Project.Extensions[extensionId];
                    string rewrittenPath = string.Format("{0}/{1}/{2}", extensionDirectory, info.Name, requestedFile);
                    if (File.Exists(this.MapPath(rewrittenPath)))
                    {
                        this.HttpContext.RewritePath(rewrittenPath);
                        if (this.IsDeveloperRequest)
                            this.Response.AddHeader("OriginalFilePath", requestedFile);

                        return true;
                    }
                }
            }
            catch (Exception ex)
            {
                log.ErrorFormat("Failed to rewrite path: {0}", ex.Message);
            }

            return false;
        }