public async Task <IActionResult> Edit(int id, [Bind("Id,Address1,Address2,AllergiesDescription,AttendHostChurch,City,ClassroomId,DateOfBirth,DecisionMade,EmergencyContactFirstName,EmergencyContactLastName,EmergencyContactPhone,EmergencyContactChildRelationship,FirstName,Gender,GradeCompleted,GuardianChildRelationship,GuardianEmail,GuardianFirstName,GuardianLastName,GuardianPhone,HasAllergies,HasMedicalCondition,HasMedications,HomeChurch,InvitedBy,LastName,MedicalConditionDescription,MedicationDescription,PlaceChildWithRequest,SessionId,State,Zip")] EditChildViewModel childVM) { if (id != childVM.Id) { return(NotFound()); } if (ModelState.IsValid) { var child = await _context.Children .Where(c => c.Id == childVM.Id && c.VBSId == this.CurrentVBSId && c.VBS.TenantId == this.TenantId) .SingleOrDefaultAsync(); child.VBSId = this.CurrentVBSId; child.Address1 = childVM.Address1; child.Address2 = childVM.Address2; child.AllergiesDescription = childVM.AllergiesDescription; child.AttendHostChurch = childVM.AttendHostChurch; child.City = childVM.City; child.ClassroomId = childVM.ClassroomId; child.DateOfBirth = childVM.DateOfBirth; child.DecisionMade = childVM.DecisionMade; child.EmergencyContactFirstName = childVM.EmergencyContactFirstName; child.EmergencyContactLastName = childVM.EmergencyContactLastName; child.EmergencyContactPhone = childVM.EmergencyContactPhone; child.EmergencyContactChildRelationship = childVM.EmergencyContactChildRelationship; child.FirstName = childVM.FirstName; child.Gender = childVM.Gender; child.GradeCompleted = childVM.GradeCompleted; child.GuardianChildRelationship = childVM.GuardianChildRelationship; child.GuardianEmail = childVM.GuardianEmail; child.GuardianFirstName = childVM.GuardianFirstName; child.GuardianLastName = childVM.GuardianLastName; child.GuardianPhone = childVM.GuardianPhone; child.HomeChurch = childVM.HomeChurch; child.InvitedBy = childVM.InvitedBy; child.HasAllergies = false; child.HasMedicalCondition = false; child.HasMedications = false; child.LastName = childVM.LastName; child.MedicalConditionDescription = childVM.MedicalConditionDescription; child.MedicationDescription = childVM.MedicationDescription; child.PlaceChildWithRequest = childVM.PlaceChildWithRequest; child.SessionId = childVM.SessionId; child.State = childVM.State; child.Zip = childVM.Zip; GetGeoCodeResponse geoResponse = await GeocodeHelper.GetGeoCode(child); if (geoResponse != null) { child.Latitude = geoResponse.Lat; child.Longitude = geoResponse.Long; } if (child.ClassroomId == 0) { child.ClassroomId = null; } try { _context.Update(child); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ChildExists(child.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction("Index")); } List <Classroom> classrooms = _context.Classes .Include(c => c.Session) .Where(c => c.VBSId == this.CurrentVBSId) .OrderBy(c => c.Session.Period) .ThenBy(c => c.Grade) .ThenBy(c => c.Name) .ToList(); SelectListItem noneClassSelectItem = new SelectListItem { Value = "0", Text = "None", Selected = true }; List <SelectListItem> assignClassrooms = new List <SelectListItem>(); assignClassrooms.Add(noneClassSelectItem); foreach (Classroom dbClass in classrooms) { SelectListItem assignClass = new SelectListItem(); assignClass.Value = dbClass.Id.ToString(); assignClass.Text = dbClass.Session.Period + " " + dbClass.Grade.GetDisplayName() + " " + dbClass.Name; assignClassrooms.Add(assignClass); } childVM.ClassroomSelectItems = assignClassrooms; ViewData["SessionId"] = new SelectList(_context.Sessions.Where(s => s.VBSId == this.CurrentVBSId), "Id", "Period", childVM.SessionId); return(View(childVM)); }
public async Task <IActionResult> Create([Bind("Id,Address1,Address2,AllergiesDescription,AttendHostChurch,City,ClassroomId,DateOfBirth,DecisionMade,EmergencyContactFirstName,EmergencyContactLastName,EmergencyContactPhone,EmergencyContactChildRelationship,FirstName,Gender,GradeCompleted,GuardianChildRelationship,GuardianEmail,GuardianFirstName,GuardianLastName,GuardianPhone,HomeChurch,InvitedBy,LastName,MedicalConditionDescription,MedicationDescription,PlaceChildWithRequest,SessionId,State,Zip")] CreateChildViewModel childVM) { if (ModelState.IsValid) { Child child = new Child { VBSId = this.CurrentVBSId, DateOfRegistration = DateTime.UtcNow, Address1 = childVM.Address1, Address2 = childVM.Address2, AllergiesDescription = childVM.AllergiesDescription, AttendHostChurch = childVM.AttendHostChurch, City = childVM.City, ClassroomId = childVM.ClassroomId, DateOfBirth = childVM.DateOfBirth, DecisionMade = childVM.DecisionMade, EmergencyContactFirstName = childVM.EmergencyContactFirstName, EmergencyContactLastName = childVM.EmergencyContactLastName, EmergencyContactPhone = childVM.EmergencyContactPhone, EmergencyContactChildRelationship = childVM.EmergencyContactChildRelationship, FirstName = childVM.FirstName, Gender = childVM.Gender, GradeCompleted = childVM.GradeCompleted, GuardianChildRelationship = childVM.GuardianChildRelationship, GuardianEmail = childVM.GuardianEmail, GuardianFirstName = childVM.GuardianFirstName, GuardianLastName = childVM.GuardianLastName, GuardianPhone = childVM.GuardianPhone, HomeChurch = childVM.HomeChurch, InvitedBy = childVM.InvitedBy, HasAllergies = false, HasMedicalCondition = false, HasMedications = false, LastName = childVM.LastName, MedicalConditionDescription = childVM.MedicalConditionDescription, MedicationDescription = childVM.MedicationDescription, PlaceChildWithRequest = childVM.PlaceChildWithRequest, SessionId = childVM.SessionId, State = childVM.State, Zip = childVM.Zip }; GetGeoCodeResponse geoResponse = await GeocodeHelper.GetGeoCode(child); if (geoResponse != null) { child.Latitude = geoResponse.Lat; child.Longitude = geoResponse.Long; } if (child.ClassroomId == 0) { child.ClassroomId = null; } _context.Add(child); await _context.SaveChangesAsync(); childVM.Id = child.Id; return(RedirectToAction("Index")); } List <Classroom> classrooms = _context.Classes .Include(c => c.Session) .Where(c => c.VBSId == this.CurrentVBSId) .OrderBy(c => c.Session.Period) .ThenBy(c => c.Grade) .ThenBy(c => c.Name) .ToList(); SelectListItem noneClassSelectItem = new SelectListItem { Value = "0", Text = "None", Selected = true }; List <SelectListItem> assignClassrooms = new List <SelectListItem>(); assignClassrooms.Add(noneClassSelectItem); foreach (Classroom dbClass in classrooms) { SelectListItem assignClass = new SelectListItem(); assignClass.Value = dbClass.Id.ToString(); assignClass.Text = dbClass.Session.Period + " " + dbClass.Grade.GetDisplayName() + " " + dbClass.Name; assignClassrooms.Add(assignClass); } childVM.ClassroomSelectItems = assignClassrooms; ViewData["SessionId"] = new SelectList(_context.Sessions.Where(s => s.VBSId == this.CurrentVBSId), "Id", "Period", childVM.SessionId); return(View(childVM)); }