using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Umbraco.Web.Routing
{
///
/// Provides utilities to handle site domains.
///
public interface ISiteDomainHelper
{
///
/// Filters a list of DomainAndUri to pick one that best matches the current request.
///
/// The Uri of the current request.
/// The list of DomainAndUri to filter.
/// The selected DomainAndUri.
///
/// If the filter is invoked then is _not_ empty and
/// is _not_ null, and could not be
/// matched with anything in .
/// The filter _must_ return something else an exception will be thrown.
///
DomainAndUri MapDomain(Uri current, DomainAndUri[] domainAndUris);
///
/// Filters a list of DomainAndUri to pick those that best matches the current request.
///
/// The Uri of the current request.
/// The list of DomainAndUri to filter.
/// A value indicating whether to exclude the current/default domain.
/// The selected DomainAndUri items.
/// The filter must return something, even empty, else an exception will be thrown.
IEnumerable MapDomains(Uri current, DomainAndUri[] domainAndUris, bool excludeDefault);
}
}