コード例 #1
0
ファイル: FamilyController.cs プロジェクト: MosheTech/Trial
        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));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
ファイル: FamilyController.cs プロジェクト: MosheTech/Trial
        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));
        }
コード例 #4
0
        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));
        }