private BatchObservationViewModel PrepareBatchObservationViewModel(BatchObservationViewModel model)
 {
     model.ChallengePicker    = uow.Challenges.PickList.ToSelectList();
     model.EquipmentPicker    = PickListExtensions.FromEnum <ObservingEquipment>().ToSelectList();
     model.SeeingPicker       = PickListExtensions.FromEnum <AntoniadiScale>().ToSelectList();
     model.TransparencyPicker = PickListExtensions.FromEnum <TransparencyLevel>().ToSelectList();
     return(model);
 }
        public ActionResult BatchObservationDetails(BatchObservationViewModel model)
        {
            var observation = mapper.Map <BatchObservationViewModel, Observation>(model);
            var results     = gameEngine.BatchCreateObservations(observation, model.Users);

            PrepareBatchObservationViewModel(model);
            ViewData["Message"] =
                $"Successfully created {results.Succeeded}; Failed to create {results.Failed} observations.";

            foreach (var key in results.Errors.Keys)
            {
                ModelState.AddModelError(null, $"{key}: {results.Errors[key]}");
            }
            return(View(model));
        }
        public ActionResult BatchObservations(List <BatchObservationUserViewModel> model)
        {
            var selectedUsers    = model.Where(p => p.Selected).Select(s => s.UserId).ToList();
            var observationModel = new BatchObservationViewModel
            {
                Users = selectedUsers,
                // Assume sensible defaults for group observing
                ObservationDateTimeUtc = DateTime.UtcNow,
                Equipment = ObservingEquipment.Telescope,
                Notes     = "Group observation entered by the administrator."
            };

            ViewBag.Message =
                $"Enter observation details and click Submit to create an observation for {selectedUsers.Count()} users.";

            PrepareBatchObservationViewModel(observationModel);
            return(View("BatchObservationDetails", observationModel));
        }