using System; using System.Collections.Generic; using Orchard.Core.Common.Models; namespace Orchard.Core.Common.Services { public interface IRoutableService : IDependency { void FillSlug(TModel model) where TModel : RoutableAspect; void FillSlug(TModel model, Func generateSlug) where TModel : RoutableAspect; string GenerateUniqueSlug(string slugCandidate, IEnumerable existingSlugs); /// /// Returns any content item of the specified content type with similar slugs /// string[] GetSimilarSlugs(string contentType, string slug); /// /// Validates the given slug /// bool IsSlugValid(string slug); /// /// Defines the slug of a RoutableAspect and validate its unicity /// void ProcessSlug(RoutableAspect part); } }