public RelationshipXref(RelationshipTypeEnum relationshipEvent, FamilyMember adultMale, FamilyMember adultFemale, FamilyMember child = null, DateTime?gameDate = null) { if (adultMale.Equals(adultFemale)) { throw new Exception($"Cannot have {relationshipEvent.ToDescription()} with self"); } // TODO: Prevent duplicates. Look through existing Xref to see. // TODO: Prevent polygamy. Look through existing Xref to see. // Remember could remarry former spouse again OR could marry within the family RelationshipType = relationshipEvent; AdultMale = adultMale; AdultFemale = adultFemale; if (child != null) // marriage & divorce do not involve child { Child = child; } if (gameDate == null) { LastStarted = Child.BirthDate.GetValueOrDefault(); } else { LastStarted = gameDate.GetValueOrDefault(); } }
private bool relationshipListContains(Student student1, RelationshipTypeEnum relType, Student student2) { foreach (StudentRelationship sr in properties.studentRelationships) { if (sr.student1.Equals(student1) && sr.relType == relType && sr.student2.Equals(student2)) { return(true); } } return(false); }
private void addRelationshipButton_Click(object sender, RoutedEventArgs e) { Student student1 = (Student)(this.name1ComboBox.SelectedItem); RelationshipTypeEnum relType = (RelationshipTypeEnum)(this.matchTypeComboBox.SelectedItem); Student student2 = (Student)(this.name2ComboBox.SelectedItem); if (!(relationshipListContains(student1, relType, student2))) { properties.studentRelationships.Add(new StudentRelationship(student1, relType, student2)); } updateMatchListBox(); fillName2ComboBox(); this.addRelationshipButton.IsEnabled = false; }
public async Task <Guid> CreateTwoPersonRelationship( MemberReadModel firstMember, MemberReadModel secondMember, RelationshipTypeEnum firstMemberRelationshipType, RelationshipTypeEnum secondMemberRelationshipType, DateTime?startDate, DateTime?endDate) { Contract.RequiresNotNull(firstMember, nameof(firstMember)); Contract.RequiresNotNull(secondMember, nameof(secondMember)); RelationshipTypeReadModel firstMemberRelationshipTypeModel = await this.relationshipTypeProvider .GetRelationshipType(firstMemberRelationshipType).ConfigureAwait(false); RelationshipTypeReadModel secondMemberRelationshipTypeModel = await this.relationshipTypeProvider .GetRelationshipType(secondMemberRelationshipType).ConfigureAwait(false); var createModel = new CombinedRelationshipCreateModel { RelationshipMembers = new List <CombinedRelationshipMemberCreateModel> { new CombinedRelationshipMemberCreateModel { MemberId = firstMember.Id, MemberRelationshipTypeId = firstMemberRelationshipTypeModel.Id, }, new CombinedRelationshipMemberCreateModel { MemberId = secondMember.Id, MemberRelationshipTypeId = secondMemberRelationshipTypeModel.Id } }, StartDate = startDate, EndDate = endDate }; return((await this.CreateRelationships(firstMember.MemoryBookUniverseId, new List <CombinedRelationshipCreateModel> { createModel }).ConfigureAwait(false))?.FirstOrDefault() ?? Guid.Empty); }
public async Task <RelationshipTypeReadModel> GetRelationshipType(RelationshipTypeEnum relationshipType) { var relationshipTypes = await this.GetRelationshipTypes().ConfigureAwait(false); return(relationshipTypes.FirstOrDefault(x => x.Code.Equals(relationshipType.ToString()))); }
public static CombinedRelationshipReadModel GetRelationship(this MemberViewModel member, RelationshipTypeEnum otherMemberRelationshipType) { return(member?.Relationships?.FirstOrDefault(x => (x.RelationshipMembers.Any(r => r.MemberRelationshipTypeCode == otherMemberRelationshipType.ToString())))); }
public StudentRelationship(Student student1, RelationshipTypeEnum relType, Student student2) { this.student1 = student1; this.relType = relType; this.student2 = student2; }