Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 3
0
        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)
            });
        }
Ejemplo n.º 4
0
        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()
            });
        }
Ejemplo n.º 5
0
        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()
            }));
        }
Ejemplo n.º 6
0
 public async Task <Park[]> GetAllParks()
 {
     return(await _parkRepository.GetAllParksAsync());
 }
Ejemplo n.º 7
0
        public async Task <ParkModel[]> GetAllModelsAsync()
        {
            var results = _mapper.Map <ParkModel[]>(await _parkRepository.GetAllParksAsync());

            return(results);
        }