public static FamilyMember AddNewFamilyMember(int?parentId, string nodeNameToShow) { var familyMember = new FamilyMember { ParentId = parentId, IsDirty = true }; _familyMembers.Add(familyMember); FamilyMemberInfo.AddNewFamilyMemberInfo(familyMember.FamilyMemberId, nodeNameToShow, familyMember.ParentId); return(familyMember); }
private static void Delete(FamilyMember familyMember) { if (_deleteMode == DeleteMode.CascadeDelete) { var familyMembersArray = _familyMembers.ToArray(); foreach (var member in familyMembersArray) { if (member.ParentId == familyMember.FamilyMemberId) { Delete(member); } } } else { var familyMembersArray = _familyMembers.ToArray(); foreach (var member in familyMembersArray) { if (member.ParentId == familyMember.FamilyMemberId) { if (_deleteMode == DeleteMode.BypassDeletedNode) { member.ParentId = familyMember.ParentId; } else //if (_deleteMode == DeleteMode.OrphanChildNodes) { member.ParentId = null; } member.Save(); } } } familyMember.IsDeleted = true; _familyMembers.Remove(familyMember); FamilyMemberInfo.Remove(familyMember.FamilyMemberId); if (_deleteMode != DeleteMode.CascadeDelete) { FamilyMemberInfo.GetFamilyMemberInfoList().RaiseResetEvent(); } }
public void Save() { IsDirty = false; FamilyMemberInfo.Update(FamilyMemberId, Name, ParentId); }