public ActionResult Create(PrimaryGuardian primaryguardian) { if (ModelState.IsValid) { primaryguardian.DateCreated = DateTime.Now; foreach (Child a in primaryguardian.Children) { a.DateCreated = primaryguardian.DateCreated; } //Check for null field in the SecondaryGuardian , if all fields are null, then do not add to database //delete the element in the list which contains delete marked to "true" int x = primaryguardian.SecondaryGuardians.Count(); for (var i = x-1; i >= 0; i--) { if (primaryguardian.SecondaryGuardians[i].Delete == true || (primaryguardian.SecondaryGuardians[i].RelationshipToChild == null && primaryguardian.SecondaryGuardians[i].FirstName == null && primaryguardian.SecondaryGuardians[i].LastName == null)) { primaryguardian.SecondaryGuardians.RemoveAt(i); } } //Check for null field in the Children , if all fields are null, then do not add to database //delete the element in the list which contains delete marked to "true" int y = primaryguardian.Children.Count(); for (int i = y -1; i >= 0; i--) { if (primaryguardian.Children[i].Delete == true || (primaryguardian.Children[i].Birthdate == null && primaryguardian.Children[i].FirstName ==null && primaryguardian.Children[i].LastName == null && primaryguardian.Children[i].RelationshipToGuardian ==null)) { primaryguardian.Children.RemoveAt(i); } } repoService.primaryGuardianRepo.Add(primaryguardian); return RedirectToAction("Index"); } ViewBag.CenterId2 = account.GetCurrentUserCenterId(); ViewBag.CenterId = new SelectList(repoService.centerRepo.FindAll(), "Id", "Name", primaryguardian.CenterId); return View(primaryguardian); }
public static PrimaryGuardian RandomPrimaryGuardian(int Id, int CenterId) { PrimaryGuardian pg = new PrimaryGuardian { Id = Id, CenterId = CenterId, FirstName = Probability(0.8) ? RandomString(3) : null, LastName = Probability(0.8) ? RandomString(3) : null, Allergies = Probability(0.8) ? RandomString(3) : null, Country = Probability(0.8) ? RandomString(3) : null, Email = Probability(0.8) ? RandomString(3) : null, Language = Probability(0.8) ? RandomString(3) : null, PostalCodePrefix = Probability(0.8) ? RandomString(3) : null, Phone = Probability(0.8) ? RandomString(3) : null, DateCreated = RandomDate() }; return pg; }
// // GET: /PrimaryGuardians/Create public ActionResult Create() { ViewBag.CenterId2 = account.GetCurrentUserCenterId(); var model = new PrimaryGuardian(); return View(model); }
public ActionResult Edit(PrimaryGuardian primaryguardian) { ViewBag.CenterId2 = account.GetCurrentUserCenterId(); if (ModelState.IsValid) { foreach (Child a in primaryguardian.Children) { a.DateCreated = (a.DateCreated == null) ? a.DateCreated : System.DateTime.Now; } //Check for null field in the SecondaryGuardian , if all fields are null, then do not add to database //delete the element in the list which contains delete marked to "true" int x = primaryguardian.SecondaryGuardians.Count(); for (var i = x - 1; i >= 0; i--) { string[] includeFields = new string[] { "FirstName", "LastName", "RelationshipToChild", "Phone" }; IEnumerable<PropertyInfo> properties = typeof(SecondaryGuardian).GetProperties().Where(prop => includeFields.Contains(prop.Name)); bool validSG = false; // if any input fields are not null, then the SecondaryGuardian is valid validSG = properties.Any( p => p.GetValue(primaryguardian.SecondaryGuardians[i], null) != null); if (primaryguardian.SecondaryGuardians[i].Delete == true || !validSG) { if (primaryguardian.SecondaryGuardians[i].Id != 0) { SecondaryGuardian sg = repoService.secondaryGuardianRepo.FindById(primaryguardian.SecondaryGuardians[i].Id); repoService.secondaryGuardianRepo.Delete(sg); } primaryguardian.SecondaryGuardians.RemoveAt(i); } else if ((primaryguardian.SecondaryGuardians[i].Delete == true && (primaryguardian.SecondaryGuardians[i].Phone == null || primaryguardian.SecondaryGuardians[i].FirstName == null || primaryguardian.SecondaryGuardians[i].LastName == null || primaryguardian.SecondaryGuardians[i].RelationshipToChild == null)) || (primaryguardian.SecondaryGuardians[i].Delete == true)) { SecondaryGuardian sec = repoService.secondaryGuardianRepo.FindById(primaryguardian.SecondaryGuardians[i].Id); if (sec != null) { repoService.secondaryGuardianRepo.Delete(sec); primaryguardian.SecondaryGuardians.RemoveAt(i); } else { primaryguardian.SecondaryGuardians.RemoveAt(i); } } else { primaryguardian.SecondaryGuardians[i].PrimaryGuardianId = primaryguardian.Id; // this is a newly created secondary guardian if (primaryguardian.SecondaryGuardians[i].Id == 0) { repoService.secondaryGuardianRepo.Add(primaryguardian.SecondaryGuardians[i]); primaryguardian.SecondaryGuardians.RemoveAt(i); } // existing secondary guardian was modified else { repoService.secondaryGuardianRepo.Update(primaryguardian.SecondaryGuardians[i]); } } } //Check for null field in the Children , if all fields are null, then do not add to database //delete the element in the list which contains delete marked to "true" int y = primaryguardian.Children.Count(); for (var i = y - 1; i >= 0; i--) { string[] includeFields = new string[] { "FirstName", "LastName", "Birthdate", "RelationshipToGuardian" }; IEnumerable<PropertyInfo> properties = typeof(Child).GetProperties().Where(prop => includeFields.Contains(prop.Name)); bool validChild = false; // if any input fields are not null, then the SecondaryGuardian is valid validChild = properties.Any( p => p.GetValue(primaryguardian.Children[i], null) != null && !includeFields.Contains(p.Name)); // child needs to be deleted if ((primaryguardian.Children[i].Birthdate == null && primaryguardian.Children[i].FirstName == null && primaryguardian.Children[i].LastName == null && primaryguardian.Children[i].RelationshipToGuardian == null) || (primaryguardian.Children[i].Delete == true && (primaryguardian.Children[i].Birthdate == null && primaryguardian.Children[i].FirstName == null && primaryguardian.Children[i].LastName == null && primaryguardian.Children[i].RelationshipToGuardian == null))) { if (primaryguardian.Children[i].Id != 0) { Child child = repoService.childRepo.FindById(primaryguardian.Children[i].Id); repoService.childRepo.Delete(child); } primaryguardian.Children.RemoveAt(i); } else if ((primaryguardian.Children[i].Delete == true && (primaryguardian.Children[i].Birthdate == null || primaryguardian.Children[i].FirstName == null || primaryguardian.Children[i].LastName == null || primaryguardian.Children[i].RelationshipToGuardian == null)) ||(primaryguardian.Children[i].Delete == true)) { Child child = repoService.childRepo.FindById(primaryguardian.Children[i].Id); if (child != null) { repoService.childRepo.Delete(child); primaryguardian.Children.RemoveAt(i); } else { primaryguardian.Children.RemoveAt(i); } } else { primaryguardian.Children[i].PrimaryGuardianId = primaryguardian.Id; // this is a newly created child if (primaryguardian.Children[i].Id == 0) { repoService.childRepo.Add(primaryguardian.Children[i]); primaryguardian.Children.RemoveAt(i); } // existing child was modified else { repoService.childRepo.Update(primaryguardian.Children[i]); } } } repoService.primaryGuardianRepo.Update(primaryguardian); return RedirectToAction("Index"); } ViewBag.CenterId = new SelectList(repoService.centerRepo.FindAll(), "Id", "Name", primaryguardian.CenterId); return View(primaryguardian); }