public static Navigator GetNavigator(string regionName, string areaName, string locationName, int entryId = 0) { Data.INavigationRepository repository = GetRepository(); Models.Navigator navigator = new Models.Navigator(); navigator.RegionName = regionName; navigator.AreaName = areaName; navigator.LocationName = locationName; navigator.EntryId = entryId; navigator.Regions.AddRange(repository.Regions()); navigator.RegionId = navigator.Regions.DefaultIfEmpty(new Data.Region()).First(r => r.RegionName == navigator.RegionName).RegionId; navigator.Areas.AddRange(repository.GetAreasByRegionId(navigator.RegionId)); if (!String.IsNullOrEmpty(navigator.AreaName)) { Area area = navigator.Areas.FirstOrDefault <Area>(a => String.Compare(a.AreaName, navigator.AreaName, true) == 0); navigator.AreaId = area.AreaId; navigator.Locations.AddRange(repository.GetLocationsByAreaId(navigator.AreaId)); } //locatons if (!String.IsNullOrEmpty(navigator.LocationName)) { navigator.LocationId = navigator.Locations.DefaultIfEmpty(new Data.Location()).First(l => l.LocationName == navigator.LocationName).LocationId; navigator.Entries.AddRange(repository.GetEntriesByLocationId(navigator.LocationId)); } return(navigator); }
public static RegionViewModel CreateRegion(Models.Navigator navigator) { RegionViewModel region = new RegionViewModel(); region.RegionId = navigator.RegionId; region.RegionName = navigator.RegionName; region.Areas.AddRange(navigator.Areas.Select(area => new AreaViewModel() { RegionId = region.RegionId, RegionName = region.RegionName, AreaId = area.AreaId, AreaName = area.AreaName })); return(region); }
public static AreaViewModel CreateArea(Models.Navigator navigator) { AreaViewModel area = new AreaViewModel(); area.RegionId = navigator.RegionId; area.AreaId = navigator.AreaId; area.AreaName = navigator.AreaName; area.RegionName = navigator.RegionName; area.Locations.AddRange(navigator.Locations.Select(location => new LocationViewModel() { AreaId = area.AreaId, LocationId = location.LocationId, LocationName = location.LocationName, RegionName = navigator.RegionName, AreaName = area.AreaName })); return(area); }
public static LocationViewModel CreateLocation(Models.Navigator navigator) { LocationViewModel location = new LocationViewModel(); location.LocationId = navigator.LocationId; location.AreaId = navigator.AreaId; location.LocationName = navigator.LocationName; location.AreaName = navigator.AreaName; location.RegionName = navigator.RegionName; location.Entries.AddRange(navigator.Entries.Select(entry => new EntryViewModel() { Clue = entry.Clue, Hint = entry.Hint, LocationId = entry.LocationId, EntryId = entry.EntryId, AreaName = location.AreaName, LocationName = location.LocationName, RegionName = location.RegionName })); return(location); }
public static EntryViewModel CreateEntry(Models.Navigator navigator) { EntryViewModel model = new EntryViewModel(); if (navigator.Entry != null) { model.EntryId = navigator.Entry.EntryId; model.Clue = navigator.Entry.Clue; model.Hint = navigator.Entry.Hint; } model.LocationId = navigator.LocationId; model.LocationName = navigator.LocationName; model.AreaName = navigator.AreaName; model.RegionName = navigator.RegionName; return(model); }
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { HttpRequestBase request = controllerContext.HttpContext.Request; string regionName = controllerContext.RouteData.Values["RegionName"] as string; string areaName = controllerContext.RouteData.Values["AreaName"] as string; string locationName = controllerContext.RouteData.Values["LocationName"] as string; string value = controllerContext.RouteData.Values["EntryId"] as string; int entryId = 0; if (!String.IsNullOrEmpty(value)) { Int32.TryParse(value, out entryId); } Models.Navigator navigator = Utilities.ObjectFactory.GetNavigator(regionName, areaName, locationName, entryId); return(navigator); }
public ActionResult ScavengerHunt(Models.Navigator navigator) { return(View("ScavengerHunt", navigator)); }