public async Task<IActionResult> CreateReservation(ReserveViewModel rvm)
		{
			//Third the reservation is created.
			if (ModelState.IsValid)
			{
				var teeTime = Mapper.Map<TeeTime>(rvm);
				teeTime.GolfCourse = _gcmRepo.GetGolfCourse();
				teeTime.Member = await _gcmRepo.GetLoggedInMemberAsync(User);
				teeTime.Start = new DateTime(
					rvm.SelectedDate.Year,
					rvm.SelectedDate.Month,
					rvm.SelectedDate.Day,
					rvm.StartTime.Hour,
					rvm.StartTime.Minute,
					rvm.StartTime.Second);

				var success = _gcmRepo.ReserveTeeTime(teeTime);

				if (success)
				{
					//show success page
					var rcvm = new ReservationCreatedViewModel();
					rcvm.Reservations = new List<DateTime>()
					{
						new DateTime(teeTime.Start.Ticks)
					};

					return View(rcvm);
				}

				ModelState.AddModelError("StartTime", "Start Time already reserved.");
				return RedirectToAction("Reserve", new SelectDateViewModel(rvm.SelectedDate));
			}

			//do something..?
			return RedirectToAction("Reserve", new SelectDateViewModel(rvm.SelectedDate));
		}
		public async Task<IActionResult> Update(ReserveViewModel vm)
		{
			var teeTime = Mapper.Map<TeeTime>(vm);
			teeTime.Start = vm.SelectedDate.Add(vm.StartTime.TimeOfDay);
			teeTime.GolfCourse = _gcmRepo.GetGolfCourse();
			teeTime.Member = await _userManager.FindByIdAsync(vm.MemberId);

			_gcmRepo.UpdateTeeTime(teeTime);

			return RedirectToAction("TeeTimes", DateTime.MinValue);
		}
		public async Task<IActionResult> TeeTimes(DateTime date)
		{
			var vm = new DailyTeeTimesViewModel();
			if (date == DateTime.MinValue)
			{
				vm.Date = DateTime.Today;
			}
			else
			{
				vm.Date = date;
			}

			List<TeeTime> reservations;
			if (User.IsInRole("admin"))
				reservations = _gcmRepo.GetReservedTeeTimesForDate(vm.Date);
			else
				reservations = _gcmRepo.GetReservedTeeTimesForMember(await _gcmRepo.GetLoggedInMemberAsync(User));

			vm.Reservations = new List<ReserveViewModel>();
			foreach (var reservation in reservations)
			{
				var reserveVM = new ReserveViewModel()
				{
					Player1Name = reservation.Player1Name,
					Player2Name = reservation.Player2Name,
					Player3Name = reservation.Player3Name,
					Player4Name = reservation.Player4Name,
					StartTime = reservation.Start,
					Id = reservation.Id,
					SelectedDate = reservation.Start.Date
				};
				vm.Reservations.Add(reserveVM);
			}

			return View(vm);
		}