Esempio n. 1
0
        public virtual ActionResult RelationshipsEdit(UserEditRelationshipsViewModel model)
        {
            if (ModelState.IsValid)
            {
                FamilyRepository repos = new FamilyRepository();
                // save the new relationship
                //Relationship relationship = new Relationship();
                //relationship.SourceUser = Target;
                //relationship.RelatedUser = db.Users.Find(model.NewRelatedUserId);
                //relationship.RelatedUserIsSourceUsers = model.NewRelationshipType;
                //repos.UpdateRelationship(db, relationship);

                foreach (var item in model.FamilyRelationshipsNew)
                {
                    Relationship relationship = new Relationship();
                    relationship.SourceUser  = Target;
                    relationship.RelatedUser = db.Users.Find(item.RelatedUserId);
                    if (item.Relationship == UserEditRelationshipsViewModel.RelationshipTypeViewModel.NotImmediateFamilyMember)
                    {
                        repos.RemoveRelationship(db, relationship);
                    }
                    else
                    {
                        relationship.RelatedUserIsSourceUsers = ((RelationshipType)item.Relationship).Reciprocal();
                        repos.UpdateRelationship(db, relationship);
                    }
                }

                return(RedirectToAction(MVC.User.Details().WithId(Target)));
            }

            return(View(model));
        }
Esempio n. 2
0
        public virtual ActionResult RelationshipsEdit()
        {
            UserEditRelationshipsViewModel model = new UserEditRelationshipsViewModel();

            model.TargetUser = Target;

            model.FamilyRelationshipsNew = new List <UserEditRelationshipsViewModel.RelationshipViewModel>();
            // existing relationships
            foreach (var relationship in Target.Relationships)
            {
                ViewModels.UserEditRelationshipsViewModel.RelationshipViewModel r =
                    new UserEditRelationshipsViewModel.RelationshipViewModel();
                r.RelatedUserId = relationship.RelatedUser.Id;
                r.RelatedUser   = relationship.RelatedUser;
                r.Relationship  = (UserEditRelationshipsViewModel.RelationshipTypeViewModel)relationship.RelatedUserIsSourceUsers.Reciprocal();
                model.FamilyRelationshipsNew.Add(r);
            }
            // non-immediate family
            foreach (var familyMember in Target.Family.Members)
            {
                if (model.FamilyRelationshipsNew.Any(vm => vm.RelatedUserId == familyMember.Id))
                {
                    continue;
                }
                if (familyMember.Id == Target.Id)
                {
                    continue;
                }
                if (familyMember.IsPublicViewer)
                {
                    continue;
                }

                ViewModels.UserEditRelationshipsViewModel.RelationshipViewModel r =
                    new UserEditRelationshipsViewModel.RelationshipViewModel();
                r.RelatedUserId = familyMember.Id;
                r.RelatedUser   = familyMember;
                r.Relationship  = UserEditRelationshipsViewModel.RelationshipTypeViewModel.NotImmediateFamilyMember;
                model.FamilyRelationshipsNew.Add(r);
            }

            model.FamilyRelationshipsNew.Sort((r1, r2) => r1.RelatedUser.Name.First.CompareTo(r2.RelatedUser.Name.First));



            return(View(model));
        }