|
namespace System.Web.UI {
using System;
using System.Reflection;
public class ScriptResourceDefinition : IScriptResourceDefinition {
private string _path;
private string _debugPath;
private string _resourceName;
private Assembly _resourceAssembly;
private string _cdnPath;
private string _cdnDebugPath;
private string _cdnPathSecureConnection;
private string _cdnDebugPathSecureConnection;
private bool _cdnSupportsSecureConnection;
private string _loadSuccessExpression;
public string CdnDebugPath {
get {
return _cdnDebugPath ?? String.Empty;
}
set {
_cdnDebugPath = value;
}
}
public string CdnPath {
get {
return _cdnPath ?? String.Empty;
}
set {
_cdnPath = value;
}
}
internal string CdnDebugPathSecureConnection {
get {
if (_cdnDebugPathSecureConnection == null) {
_cdnDebugPathSecureConnection = GetSecureCdnPath(CdnDebugPath);
}
return _cdnDebugPathSecureConnection;
}
}
internal string CdnPathSecureConnection {
get {
if (_cdnPathSecureConnection == null) {
_cdnPathSecureConnection = GetSecureCdnPath(CdnPath);
}
return _cdnPathSecureConnection;
}
}
public bool CdnSupportsSecureConnection {
get {
return _cdnSupportsSecureConnection;
}
set {
_cdnSupportsSecureConnection = value;
}
}
public string LoadSuccessExpression {
get {
return _loadSuccessExpression ?? String.Empty;
}
set {
_loadSuccessExpression = value;
}
}
public string DebugPath {
get {
return _debugPath ?? String.Empty;
}
set {
_debugPath = value;
}
}
public string Path {
get {
return _path ?? String.Empty;
}
set {
_path = value;
}
}
public Assembly ResourceAssembly {
get {
return _resourceAssembly;
}
set {
_resourceAssembly = value;
}
}
public string ResourceName {
get {
return _resourceName ?? String.Empty;
}
set {
_resourceName = value;
}
}
private string GetSecureCdnPath(string unsecurePath) {
string cdnPath = String.Empty;
if (!String.IsNullOrEmpty(unsecurePath)) {
if (_cdnSupportsSecureConnection) {
// convert 'http' to 'https'
if (unsecurePath.StartsWith("http://", StringComparison.OrdinalIgnoreCase)) {
cdnPath = "https" + unsecurePath.Substring(4);
}
else {
// cdnPath is not 'http' so we cannot determine the secure path
cdnPath = String.Empty;
}
}
else {
cdnPath = String.Empty;
}
}
return cdnPath;
}
string IScriptResourceDefinition.CdnPathSecureConnection {
get {
return CdnPathSecureConnection;
}
}
string IScriptResourceDefinition.CdnDebugPathSecureConnection {
get {
return CdnDebugPathSecureConnection;
}
}
}
}
|