public virtual ActionResult AddFamilyMember(bool?isKid = null) { AddFamilyMemberViewModel viewModel = new AddFamilyMemberViewModel(); viewModel.Name.Last = Target.Name; if (isKid.HasValue) { viewModel.IsKid = isKid.Value; } return(View(viewModel)); }
public ActionResult AddFamilyMember(AddFamilyMemberViewModel model) { ActionResult result = null; try { if (!ModelState.IsValid) { throw new Exception(); } else if (((User)Session["User"]).RoleID == 3) { TempData["AddSuccessState"] = AddFamilyMemberViewModel.SuccessState.NotAuthorized; result = RedirectToAction("AddFamilyMember", "Home"); } else { PasswordHash ph = new PasswordHash(model.Password); User user = new User(); user.ID = model.ID; user.FirstName = model.FirstName; user.LastName = model.LastName; user.Username = model.Username; user.Password = ph.Hash; user.FamilyID = ((User)Session["User"]).FamilyID; user.FamilyName = _db.GetFamilyFromFamilyID(user.FamilyID); user.Salt = ph.Salt; user.RoleID = model.RoleID; user = _db.CreateFamilyMember(user); if (((User)Session["User"]).RoleID == 2) { TempData["AddSuccessState"] = AddFamilyMemberViewModel.SuccessState.Success; result = RedirectToAction("AddFamilyMember", "Home"); } } } catch (Exception) { TempData["AddSuccessState"] = AddFamilyMemberViewModel.SuccessState.Failed; result = RedirectToAction("AddFamilyMember", "Home"); } return(result); }
public virtual ActionResult AddFamilyMember(AddFamilyMemberViewModel model) { if (ModelState.IsValid) { FamilyRepository repos = new FamilyRepository(); User newUser = repos.AddFamilyMember(db, Target, model.Name, model.Email, model.IsKid); if (model.IsKid) { // add assumed relationship to admin Relationship relationshipToAdmin = new Relationship(); relationshipToAdmin.SourceUser = Target.Admin; relationshipToAdmin.RelatedUser = newUser; relationshipToAdmin.RelatedUserIsSourceUsers = RelationshipType.Child; repos.UpdateRelationship(db, relationshipToAdmin); // add assumed relationships to other kids foreach (User member in Target.Members) { if (member.Id == newUser.Id) { continue; } if (member.Id == Target.Admin.Id) { continue; } if (!member.IsKid) { continue; } Relationship relationshipToOtherKid = new Relationship(); relationshipToOtherKid.SourceUser = newUser; relationshipToOtherKid.RelatedUser = member; relationshipToOtherKid.RelatedUserIsSourceUsers = RelationshipType.Sibling; repos.UpdateRelationship(db, relationshipToOtherKid); } } return(RedirectToAction(MVC.User.RelationshipsEdit().WithId(newUser))); } return(View(model)); }
public ActionResult AddFamilyMember() { List <User> userList = new List <User>(); userList = _db.GetAllUsersFromFamilyID(((User)Session["User"]).FamilyID); AddFamilyMemberViewModel model = new AddFamilyMemberViewModel(); if (TempData.ContainsKey("AddSuccessState")) { model.AddSuccessState = (AddFamilyMemberViewModel.SuccessState)TempData["AddSuccessState"]; } else { model.AddSuccessState = AddFamilyMemberViewModel.SuccessState.None; } model.FamilyMembersList = userList; return(View("AddFamilyMember", model)); }