public async Task <HomeViewModel> GetHomeModelAsync(string latitude, string longitude) { var parks = _mapper.Map <ParkModel[]>(await _parkRepository.GetAllParksAsync()); var park = GetSelectedPark(latitude, longitude, parks); var timeNow = DateTime.Now.AddHours(1).TimeOfDay; var parkCount = parks.Length; var openParkCount = parks.Where(p => p.ClosingTime.TimeOfDay > timeNow && p.OpeningTime.TimeOfDay < timeNow).Count(); var parksClosingSoon = parks.Where(p => p.ClosingTime.TimeOfDay > timeNow && (p.ClosingTime.TimeOfDay < DateTime.Now.AddHours(3).TimeOfDay | (DateTime.Now.AddHours(1).DayOfYear + 1) == DateTime.Now.AddHours(3).DayOfYear)).ToArray(); var lastevent = _mapper.Map <ParkEventModel>(await _parkRepository.GetLatestEventAsync()); var upcomingEvents = _mapper.Map <ParkEventModel[]>(await _parkRepository.GetEventsUpToDateAsync(DateTime.Today.AddDays(30))); var lastSportsClub = _mapper.Map <SportsClubModel>(await _parkRepository.GetLatestSportsClubAsync()); return(new HomeViewModel(park, parkCount, openParkCount, parksClosingSoon, lastevent, upcomingEvents, lastSportsClub)); }
public async Task <ChartViewModel> CreateAsync() { var data = await _parkRepository.GetAllSportsClubsAsync(); var parks = await _parkRepository.GetAllParksAsync(false); var count = new decimal[parks.Length]; foreach (var d in data) { count[Array.FindIndex(parks, p => p.ParkId == d.Park.ParkId)] += d.Members; } var builder = new ChartBuilder(ChartType.scatter) .AddScatterData(parks.Select(p => (decimal)p.SizeInMetresSquared).ToArray(), count, 7, 0, 0, "Members by park area" ) .AddBackgroundColors() .AddBorderColors() .AddXAxesSet("Park size (metres squared)") .AddYAxesSet("Total club members") .SetTitle("Total Club Members by Park area") .SetDuration(2) .SetMaintainAspectRatio(true, true); var chart = builder.GetChart(); return(new ChartViewModel(chart)); }
public async Task <IEnumerable <SelectListItem> > GetParkSelectListItemsAsync(bool onlyWithEvents = false) { var parks = _mapper.Map <ICollection <ParkModel> >(await _parkRepository.GetAllParksAsync()); return(from p in parks where !onlyWithEvents || p.Events.Any(e => e.Date >= DateTime.Today) select new SelectListItem { Selected = false, Text = p.Name, Value = _encryptionService.Encrypt(p.ParkId) }); }
public async Task <IEnumerable <SelectListItem> > GetParkSelectListItemsAsync(bool onlyWithClubs = false) { var parks = _mapper.Map <ICollection <ParkModel> >(await _parkRepository.GetAllParksAsync()); return(from p in parks where !onlyWithClubs || p.SportClubs.Count > 0 select new SelectListItem { Selected = false, Text = p.Name, Value = p.ParkId.ToString() }); }
public async Task <IEnumerable <SelectListItem> > GetParkSelectListItemsAsync <T>(bool withChildrenOnly = false) where T : class { var parks = await _parkRepository.GetAllParksAsync(); return(parks.Where(p => !withChildrenOnly || (typeof(T).IsEquivalentTo(typeof(ParkEventModel)) && p.Events.Any(e => e.Date >= DateTime.Today)) | (typeof(T).IsEquivalentTo(typeof(SupervisorModel)) && p.Supervisor != null) | (typeof(T).IsEquivalentTo(typeof(SportsClubModel)) && p.SportClubs.Count > 0)) .Select(p => new SelectListItem { Selected = false, Text = p.Name, Value = p.ParkId.ToString() })); }
public async Task <Park[]> GetAllParks() { return(await _parkRepository.GetAllParksAsync()); }
public async Task <ParkModel[]> GetAllModelsAsync() { var results = _mapper.Map <ParkModel[]>(await _parkRepository.GetAllParksAsync()); return(results); }