public PersonDto(Person person, TreeRelations treeRelations) { Id = person.Id.Value; Name = person.Name; LastName = person.LastName; Gender = person.Gender; BirthDate = person.BirthDate?.GetDate(); DeathDate = person.DeathDate?.GetDate(); Description = person.Description; Biography = person.Biography; Mother = GetRelations(person.Id, RelationType.Mother, treeRelations).Cast <Guid?>().FirstOrDefault(); Father = GetRelations(person.Id, RelationType.Father, treeRelations).Cast <Guid?>().FirstOrDefault(); Spouse = GetRelations(person.Id, RelationType.Spouse, treeRelations).Cast <Guid?>().FirstOrDefault(); Children = GetChildren(person.Id, treeRelations); UnknownRelations = GetRelations(person.Id, RelationType.Unknown, treeRelations); MainPhoto = person.MainPhoto is null ? null : new FileDto(person.MainPhoto); Files = person.Files.Select(f => new FileDto(f)).ToList(); }
private static List <Guid> GetRelations(PersonId id, RelationType relationType, TreeRelations treeRelations) { return(treeRelations.Relations.Where(r => r.From == id && r.RelationType == relationType) .Select(t => t.To.Value).ToList()); }
private static List <Guid> GetChildren(PersonId id, TreeRelations treeRelations) { return(treeRelations.Relations.Where(r => r.To == id && (r.RelationType == RelationType.Father || r.RelationType == RelationType.Mother)) .Select(t => t.From.Value).ToList()); }
public TreeRelationsDomain() { TreeRelations = new TreeRelations(); }