public async Task <IActionResult> Detail(ParticipantsDetailViewModel model) { var site = await GetCurrentSiteAsync(); var program = await _siteService.GetProgramByIdAsync(model.User.ProgramId); if (site.RequirePostalCode && string.IsNullOrWhiteSpace(model.User.PostalCode)) { ModelState.AddModelError("User.PostalCode", "The Zip Code field is required."); } if (program.AgeRequired && !model.User.Age.HasValue) { ModelState.AddModelError("User.Age", "The Age field is required."); } if (program.SchoolRequired && !model.User.EnteredSchoolId.HasValue) { if (!model.NewEnteredSchool && !model.User.SchoolId.HasValue) { ModelState.AddModelError("User.SchoolId", "The School field is required."); } else if (model.NewEnteredSchool && string.IsNullOrWhiteSpace(model.User.EnteredSchoolName)) { ModelState.AddModelError("User.EnteredSchoolName", "The School Name field is required."); } } if (model.NewEnteredSchool && !model.SchoolDistrictId.HasValue && ((program.AskSchool && !string.IsNullOrWhiteSpace(model.User.EnteredSchoolName)) || program.SchoolRequired)) { ModelState.AddModelError("SchoolDistrictId", "The School District field is required."); } if (ModelState.IsValid) { try { bool hasSchool = false; if (!program.AskAge) { model.User.Age = null; } if (program.AskSchool) { hasSchool = true; if (model.NewEnteredSchool || model.User.EnteredSchoolId.HasValue) { model.User.SchoolId = null; } else { model.User.EnteredSchoolId = null; model.User.EnteredSchoolName = null; } } await _userService.MCUpdate(model.User, hasSchool, model.SchoolDistrictId); AlertSuccess = "Participant infomation updated"; return(RedirectToAction("Detail", new { id = model.User.Id })); } catch (GraException gex) { ShowAlertWarning("Unable to update participant: ", gex); } } SetPageTitle(model.User); var branchList = await _siteService.GetBranches(model.User.SystemId); if (model.User.BranchId < 1) { branchList = branchList.Prepend(new Branch() { Id = -1 }); } var systemList = await _siteService.GetSystemList(); var programList = await _siteService.GetProgramList(); var programViewObject = _mapper.Map <List <ProgramViewModel> >(programList); model.BranchList = new SelectList(branchList.ToList(), "Id", "Name"); model.SystemList = new SelectList(systemList.ToList(), "Id", "Name"); model.ProgramList = new SelectList(programList.ToList(), "Id", "Name"); model.ProgramJson = Newtonsoft.Json.JsonConvert.SerializeObject(programViewObject); model.RequirePostalCode = site.RequirePostalCode; model.ShowAge = program.AskAge; model.ShowSchool = program.AskSchool; var districtList = await _schoolService.GetDistrictsAsync(); if (model.User.SchoolId.HasValue) { var schoolDetails = await _schoolService.GetSchoolDetailsAsync(model.User.SchoolId.Value); var typeList = await _schoolService.GetTypesAsync(schoolDetails.SchoolDisctrictId); model.SchoolDistrictList = new SelectList(districtList.ToList(), "Id", "Name", schoolDetails.SchoolDisctrictId); model.SchoolTypeList = new SelectList(typeList.ToList(), "Id", "Name", schoolDetails.SchoolTypeId); model.SchoolList = new SelectList(schoolDetails.Schools.ToList(), "Id", "Name"); } else { model.SchoolDistrictList = new SelectList(districtList.ToList(), "Id", "Name"); if (model.SchoolDistrictId.HasValue) { var typeList = await _schoolService.GetTypesAsync(model.SchoolDistrictId); model.SchoolTypeList = new SelectList(typeList.ToList(), "Id", "Name", model.SchoolTypeId); var schoolList = await _schoolService.GetSchoolsAsync(model.SchoolDistrictId, model.SchoolTypeId); model.SchoolList = new SelectList(schoolList.ToList(), "Id", "Name"); } } return(View(model)); }
public async Task <IActionResult> Detail(int id) { try { var user = await _userService.GetDetails(id); SetPageTitle(user); var branchList = await _siteService.GetBranches(user.SystemId); var systemList = await _siteService.GetSystemList(); var programList = await _siteService.GetProgramList(); var userProgram = programList.Where(_ => _.Id == user.ProgramId).SingleOrDefault(); var programViewObject = _mapper.Map <List <ProgramViewModel> >(programList); ParticipantsDetailViewModel viewModel = new ParticipantsDetailViewModel() { User = user, Id = user.Id, HouseholdCount = await _userService .FamilyMemberCountAsync(user.HouseholdHeadUserId ?? id), HeadOfHouseholdId = user.HouseholdHeadUserId, HasAccount = !string.IsNullOrWhiteSpace(user.Username), CanEditDetails = UserHasPermission(Permission.EditParticipants), RequirePostalCode = (await GetCurrentSiteAsync()).RequirePostalCode, ShowAge = userProgram.AskAge, ShowSchool = userProgram.AskSchool, HasSchoolId = user.SchoolId.HasValue, ProgramJson = Newtonsoft.Json.JsonConvert.SerializeObject(programViewObject), BranchList = new SelectList(branchList.ToList(), "Id", "Name"), ProgramList = new SelectList(programList.ToList(), "Id", "Name"), SystemList = new SelectList(systemList.ToList(), "Id", "Name") }; var districtList = await _schoolService.GetDistrictsAsync(); if (user.SchoolId.HasValue) { var schoolDetails = await _schoolService.GetSchoolDetailsAsync(user.SchoolId.Value); var typeList = await _schoolService.GetTypesAsync(schoolDetails.SchoolDisctrictId); viewModel.SchoolDistrictList = new SelectList(districtList.ToList(), "Id", "Name", schoolDetails.SchoolDisctrictId); viewModel.SchoolTypeList = new SelectList(typeList.ToList(), "Id", "Name", schoolDetails.SchoolTypeId); viewModel.SchoolList = new SelectList(schoolDetails.Schools.ToList(), "Id", "Name"); } else { viewModel.SchoolDistrictList = new SelectList(districtList.ToList(), "Id", "Name"); } return(View(viewModel)); } catch (GraException gex) { ShowAlertWarning("Unable to view participant: ", gex); return(RedirectToAction("Index")); } }