public FamilyRelationshipsWithHotSpots(HotSpot hotSpot1,
                                               RefugeeModel refugee1,
                                               IsFamilyRelationshipData isFamilyRelationshipData1,
                                               RefugeeModel refugee2,
                                               HotSpot hotSpot2,
                                               IsFamilyRelationshipData isFamilyRelationshipData2 = null,
                                               RefugeeModel refugee3 = null,
                                               HotSpot hotSpot3      = null)
        {
            Ensure.That(nameof(hotSpot1)).IsNotNull();

            Ensure.That(nameof(refugee1)).IsNotNull();

            Ensure.That(nameof(isFamilyRelationshipData1)).IsNotNull();

            Ensure.That(nameof(refugee2)).IsNotNull();

            Ensure.That(nameof(hotSpot2)).IsNotNull();

            HotSpot1 = hotSpot1;

            Refugee1 = refugee1;

            IsFamilyRelationshipData1 = isFamilyRelationshipData1;

            Refugee2 = refugee2;

            HotSpot2 = hotSpot2;

            IsFamilyRelationshipData2 = isFamilyRelationshipData2;

            Refugee3 = refugee3;

            HotSpot3 = hotSpot3;
        }
        public void Relate(RefugeeModel source, RefugeeModel target, IsFamilyRelationshipData isFamilyRelationshipData)
        {
            Ensure.That(nameof(source)).IsNotNull();

            Ensure.That(nameof(target)).IsNotNull();

            string refugeeLabel = typeof(RefugeeModel).Name;

            GraphClient.Cypher.Match($"(s:{refugeeLabel})", $"(t:{refugeeLabel})")
            .Where((RefugeeModel s) => s.Id == source.Id)
            .AndWhere((RefugeeModel t) => t.Id == target.Id)
            .CreateUnique($"(s)-[:{IsFamilyRelationship.TypeKey} {{relationshipData}}]->(t)")
            .WithParam("relationshipData", isFamilyRelationshipData)
            .ExecuteWithoutResults();
        }