- combres-30362.zip
- Combres
- trunk
- Combres
- Libraries
- EcmaScript.NET.modified.dll
- Fasterflect.dll
- log4net.dll
- Yahoo.Yui.Compressor.dll
- Samples
- MvcSample
- App_Data
- Content
- images
- ui-bg_diagonals-thick_18_b81900_40x40.png
- ui-bg_diagonals-thick_20_666666_40x40.png
- ui-bg_flat_10_000000_40x100.png
- ui-bg_glass_100_f6f6f6_1x400.png
- ui-bg_glass_100_fdf5ce_1x400.png
- ui-bg_glass_65_ffffff_1x400.png
- ui-bg_gloss-wave_35_f6a828_500x100.png
- ui-bg_highlight-soft_100_eeeeee_1x100.png
- ui-bg_highlight-soft_75_ffe45c_1x100.png
- ui-icons_222222_256x240.png
- ui-icons_228ef1_256x240.png
- ui-icons_ef8c08_256x240.png
- ui-icons_ffd27a_256x240.png
- ui-icons_ffffff_256x240.png
- jquery-ui-1.7.2.custom.css
- Site.css
- Controllers
- Default.aspx
- Default.aspx.cs
- Global.asax
- Global.asax.cs
- MvcSample.csproj
- Properties
- Scripts
- Views
- Web.config
- WebFormSample
- Combres_Binary.zip
- Combres.dll
- Combres.License.txt
- EcmaScript.NET.modified.dll
- Fasterflect.dll
- log4net.dll
- Yahoo.Yui.Compressor.dll
- Combres_Source.zip
- API
- Samples.zip
- Samples
- MvcSample
- App_Data
- Content
- images
- ui-bg_diagonals-thick_18_b81900_40x40.png
- ui-bg_diagonals-thick_20_666666_40x40.png
- ui-bg_flat_10_000000_40x100.png
- ui-bg_glass_100_f6f6f6_1x400.png
- ui-bg_glass_100_fdf5ce_1x400.png
- ui-bg_glass_65_ffffff_1x400.png
- ui-bg_gloss-wave_35_f6a828_500x100.png
- ui-bg_highlight-soft_100_eeeeee_1x100.png
- ui-bg_highlight-soft_75_ffe45c_1x100.png
- ui-icons_222222_256x240.png
- ui-icons_228ef1_256x240.png
- ui-icons_ef8c08_256x240.png
- ui-icons_ffd27a_256x240.png
- ui-icons_ffffff_256x240.png
- jquery-ui-1.7.2.custom.css
- Site.css
- Controllers
- Default.aspx
- Default.aspx.cs
- Global.asax
- Global.asax.cs
- MvcSample.csproj
- Properties
- Scripts
- Views
- Web.config
- WebFormSample
|
#region License
// Copyright 2009 Buu Nguyen (http://www.buunguyen.net/blog)
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// The latest version of this file can be found at http://combres.codeplex.com
#endregion
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace Combres
{
/// <summary>
/// Utility class providing extension methods for ASP.NET and ASP.NET MVC applications to
/// work with the library.
/// </summary>
public static class WebExtensions
{
private const string UrlPattern = "{0}/{1}/{2}";
/// <summary>
/// Retrieves the URL of the Combres engine as registered in XML data file.
/// </summary>
/// <param name="routes">The actual argument is typically <code>RouteTable.Routes</code></param>
/// <returns>The URL of the Combres engine as registered in XML data file</returns>
public static string GetCombresUrl(this RouteCollection routes)
{
return Settings.Url.ResolveUrl();
}
/// <summary>
/// Registers the combiner route to the <code>routes</code> collection.
/// Invoke this in <code>Application_Start</code>.
/// </summary>
/// <param name="routes">The actual argument is typically <code>RouteTable.Routes</code></param>
/// <param name="name">The route name</param>
public static void AddCombresRoute(this RouteCollection routes, string name)
{
var adjustedUrl = Settings.Url.Substring(2); // Remove the "~/"
routes.Add(name, new Route(adjustedUrl + "/{name}/{version}",
new RouteValueDictionary(new { version = string.Empty }),
new CombresRouteHandler()));
}
/// <summary>
/// See <c>WebExtensions#CombresUrl</c>.
/// </summary>
public static string CombresUrl(this HtmlHelper html, string setName)
{
return CombresUrl(setName);
}
/// <summary>
/// Generates the URL to the resource combiner for the specified <paramref name="setName"/>.
/// </summary>
/// <example>
/// <![CDATA[<script type="text/javascript" src="<%= Html.CombresUrl("siteJsSet") %>"></script>]]>
/// </example>
/// <param name="setName">The name of the resource set to be linked to</param>
/// <returns>The URL to the reousrce combiner for the specified <paramref name="setName"/></returns>
public static string CombresUrl(string setName)
{
var settings = Settings;
var set = GetResourceSet(setName);
var fullUrl = string.Format(UrlPattern, settings.Url, set.Name, set.Version);
return fullUrl.ResolveUrl();
}
/// <summary>
/// See <c>WebExtensions#CombresLink</c>.
/// </summary>
public static string CombresLink(this HtmlHelper html, string setName)
{
return CombresLink(setName);
}
/// <summary>
/// Generates the link to the resource combiner for the specified
/// <paramref name="setName"/>. If the set is a JavaScript set,
/// <![CDATA[<script type="text/javascript" src=...></script>]]> is returned.
/// If the set is a CSS set, <![CDATA[<link rel="stylesheet" type="text/css" href=... />]]>
/// is returned.
/// </summary>
/// <example>
/// <![CDATA[<%= Html.CombresLink("bootstrapJs")%>]]>
/// </example>
/// <param name="setName">The name of the resource set to be linked to</param>
/// <returns>The link to the resource combiner for the specified <paramref name="setName"/></returns>
public static string CombresLink(string setName)
{
var set = GetResourceSet(setName);
string optimizerUrl = set.Type == ResourceType.JS ?
"<script type=\"text/javascript\" src=\"{0}\"></script>" :
"<link rel=\"stylesheet\" type=\"text/css\" href=\"{0}\" />";
return string.Format(optimizerUrl, CombresUrl(set.Name));
}
private static ResourceSet GetResourceSet(string setName)
{
var set = Settings[setName];
if (set == null)
throw new ResourceSetNotFoundException("Set " + setName + " does not exist");
return set;
}
private static Settings Settings
{
get
{
return Configuration.GetSettings(HttpContext.Current);
}
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.