using System.Linq; using System.Web.Mvc; using Composite.AspNet.MvcFunctions; using Composite.AspNet.MvcFunctions.Routing; using Composite.Core.Linq; using Composite.Core.Routing.Foundation.PluginFacades; using Composite.Data; namespace Composite.Demo { [C1Function(Namespace = "Demo", Name="Car")] public class CarController: Controller { public ActionResult Index() { var cars = DataFacade.GetData().ToList(); return View(cars); } [GlobalUrlMapper(typeof(ICar), "c5383680-45b7-4a96-9f8d-be4910522221")] public ActionResult Details(string id) { var car = DataFacade.GetData().FirstOrDefault(p => p.Id == id); return car == null ? (ActionResult) HttpNotFound() : View(car); } [GlobalUrlMapper(typeof(ICar), "c5383680-45b7-4a96-9f8d-be4910522221", "Name")] public ActionResult DetailsByName(string id) { string name = id; var product = DataFacade.GetData().Evaluate().FirstOrDefault(p => LabelToUrlPart(p.Name) == name); return product == null ? (ActionResult)HttpNotFound() : View("Details", product); } private static string LabelToUrlPart(string partnerName) { return UrlFormattersPluginFacade.FormatUrl(partnerName, true); } } }