public async Task <IActionResult> Edit(int id, [Bind("")] CarMeet carMeet)
        {
            var userId = this.User.FindFirstValue(ClaimTypes.NameIdentifier);

            carMeet = _context.CarMeets.Where(c => c.IdentityUserId == userId).FirstOrDefault();

            if (ModelState.IsValid)
            {
                try
                {
                    var client = _context.Clients.Where(c => c.IdentityUserId == userId).FirstOrDefault();

                    _context.Update(carMeet);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!CarMeetExists(carMeet.MeetId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(carMeet));
        }
        public async Task <IActionResult> Create([Bind("MeetId,MeetName,Street,City,State,Zip,MeetTime,MeetDate")] CarMeet carMeet)
        {
            string              url      = $"https://maps.googleapis.com/maps/api/geocode/json?address={carMeet.Street},+{carMeet.City},+{carMeet.State}&key={APIKeys.GeocodeKey}";
            HttpClient          client   = new HttpClient();
            HttpResponseMessage response = await client.GetAsync(url);

            string jsonResult = await response.Content.ReadAsStringAsync();

            if (response.IsSuccessStatusCode)
            {
                JObject geoCode = JObject.Parse(jsonResult);
                carMeet.Lat  = (double)geoCode["results"][0]["geometry"]["location"]["lat"];
                carMeet.Long = (double)geoCode["results"][0]["geometry"]["location"]["lng"];
            }
            if (ModelState.IsValid)
            {
                List <Client> clients = new List <Client>();
                var           userId  = this.User.FindFirstValue(ClaimTypes.NameIdentifier);
                carMeet.IdentityUserId = userId;

                _context.Add(carMeet);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(carMeet));
        }
        public async Task <IActionResult> RSVP(CarMeet carMeet)
        {
            carMeet = _context.CarMeets.Where(c => c.MeetId == carMeet.MeetId).FirstOrDefault();
            var        userId     = this.User.FindFirstValue(ClaimTypes.NameIdentifier);
            ClientMeet clientMeet = new ClientMeet();
            var        client     = _context.Clients.Where(c => c.IdentityUserId == userId).FirstOrDefault();

            clientMeet.ClientId = client.ClientId;
            clientMeet.MeetId   = carMeet.MeetId;
            _context.ClientMeets.Add(clientMeet);
            await _context.SaveChangesAsync();

            return(View("Details", carMeet));
        }
        // GET: Comments/Create
        public IActionResult CommentCreate(CarMeet carMeet, int?id)
        {
            Comment comment = new Comment();

            if (carMeet.MeetId == 0)
            {
                comment.MeetId = (int)id;
            }
            else
            {
                comment.MeetId = carMeet.MeetId;
            }

            return(View(comment));
        }