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)); }
// GET: Map of registered children public async Task <IActionResult> ChildrenMap() { var applicationDbContext = _context.Children .Where(c => c.VBSId == this.CurrentVBSId && c.VBS.TenantId == this.TenantId); List <Child> dbChildren = await applicationDbContext.ToListAsync(); Dictionary <string, string> addressList = new Dictionary <string, string>(); string markers = "["; foreach (Child child in dbChildren) { string childAddress = GeocodeHelper.GetFullAddress(child); if (string.IsNullOrWhiteSpace(child.Latitude) || string.IsNullOrWhiteSpace(child.Longitude)) { var response = await GeocodeHelper.GetGeoCode(childAddress); if (response != null) { child.Latitude = response.Lat; child.Longitude = response.Long; _context.Update(child); await _context.SaveChangesAsync(); } } if (!addressList.ContainsKey(childAddress)) { addressList.Add(childAddress, child.LastName); string homeChurch; if (child.AttendHostChurch) { homeChurch = "home"; } else { if (ChurchHelper.IsNoneChurch(child.HomeChurch)) { homeChurch = "none"; } else { homeChurch = "other"; } } markers += "{"; markers += string.Format("'title': '{0}',", System.Net.WebUtility.HtmlEncode(child.LastName)); markers += string.Format("'lat': '{0}',", child.Latitude); markers += string.Format("'lng': '{0}',", child.Longitude); markers += string.Format("'description': '{0}',", System.Net.WebUtility.HtmlEncode(childAddress)); markers += string.Format("'homeChurch': '{0}'", homeChurch); markers += "},"; } } markers += "];"; ViewBag.Markers = markers; ChildrenMapViewModel vm = new ChildrenMapViewModel(); vm.ChurchName = "Northwest Bible Church"; return(View(vm)); }
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)); }