Exemplo n.º 1
0
        public async Task <IActionResult> InterestSelection(string id)
        {
            if (id == null)
            {
                return(NotFound());
            }
            var currentEvent = await _context.Events.FirstOrDefaultAsync(e => e.Id == id);

            if (currentEvent == null)
            {
                return(NotFound());
            }
            EventInterestsViewModel eventInterests = new EventInterestsViewModel();
            List <Interest>         likedInterests = new List <Interest>();

            eventInterests.CurrentEvent = currentEvent;
            var interestEntries = await _context.EventInterests.Include(e => e.Interests).Where(i => i.EventId == currentEvent.Id).ToListAsync(); //try catch?

            var interests = await _context.Interests.ToListAsync();

            foreach (EventInterest i in interestEntries)
            {
                likedInterests.Add(i.Interests);
                interests.Remove(i.Interests);
            }
            eventInterests.AddedInterests = likedInterests;
            eventInterests.Interests      = interests;

            return(View(eventInterests));
        }
Exemplo n.º 2
0
        // GET: Events/Details/5
        public async Task <IActionResult> Details(string id)
        {
            if (id == null)
            {
                return(NotFound());
            }
            var @event = await _context.Events.FirstOrDefaultAsync(m => m.Id == id);

            if (@event == null)
            {
                return(NotFound());
            }
            bool         isOrganizer = false;
            StandardUser organizer   = new StandardUser();
            var          organizerId = _context.EventOrganizers.Where(e => e.EventId == @event.Id).Select(e => e.UserId).Single(); // try catch?

            organizer = _context.StandardUsers.Where(x => x.ApplicationUserId == organizerId).FirstOrDefault();
            if (User.IsInRole("Standard"))
            {
                var currentUserId  = User.Identity.GetUserId();
                var standardUserId = await _context.StandardUsers.Where(u => u.ApplicationUserId == currentUserId).Select(u => u.Id).SingleAsync();

                isOrganizer = currentUserId == organizerId;
            }

            EventInterestsViewModel eveInterests   = new EventInterestsViewModel();
            List <Interest>         likedInterests = new List <Interest>();

            var currentVenue    = _context.Venues.Where(x => x.Id == @event.VenueId).FirstOrDefault();
            var interestEntries = await _context.EventInterests.Include(v => v.Interests).Where(i => i.EventId == @event.Id).ToListAsync();

            foreach (EventInterest i in interestEntries)
            {
                likedInterests.Add(i.Interests);
            }
            if (currentVenue != null)
            {
                WeatherApi weather   = new WeatherApi();
                bool       checkDate = weather.CheckDateRange(@event.StartDate);
                if (checkDate != false)
                {
                    string   request      = weather.SetRequestString(currentVenue.City, currentVenue.State);
                    var      forecastData = weather.GetForecast(request);
                    TimeSpan dayIndex     = @event.StartDate - DateTime.Today;
                    var      forecastDay  = forecastData[dayIndex.Days];
                    eveInterests.Forecast = forecastDay["text"];
                }
            }
            var participants = GetParticipants(@event.Id);
            var PCount       = ParticipantsCount(@event.Id);

            eveInterests.Organizer       = organizer;
            eveInterests.Participants    = participants;
            eveInterests.particpantCount = PCount;
            eveInterests.CurrentVenue    = currentVenue;
            eveInterests.AddedInterests  = likedInterests;
            eveInterests.Interests       = likedInterests;
            eveInterests.CurrentEvent    = @event;
            eveInterests.isOrganizer     = isOrganizer;
            ViewBag.googleMapsKey        = ApiKeys.googleMapsKey;
            return(View(eveInterests));
        }