public Dictionary <PartyRelationshipType, int> ValidateRelationships(long partyId) { var partyManager = new PartyManager(); var party = partyManager.PartyRepository.Get(partyId); var requiredPartyRelationTypes = new PartyRelationshipTypeManager().GetAllPartyRelationshipTypes(party.PartyType.Id).Where(cc => cc.MinCardinality > 0); var partyRelations = partyManager.PartyRelationshipRepository.Get(cc => cc.FirstParty.Id == party.Id); var requiredPartyRelationTypeCount = new Dictionary <PartyRelationshipType, int>(); foreach (var requiredPartyRelationType in requiredPartyRelationTypes) { if (partyRelations.Where(cc => cc.PartyRelationshipType.Id == requiredPartyRelationType.Id).Count() < requiredPartyRelationType.MinCardinality) { requiredPartyRelationTypeCount.Add(requiredPartyRelationType, requiredPartyRelationType.MinCardinality - partyRelations.Where(cc => cc.PartyRelationshipType.Id == requiredPartyRelationType.Id).Count()); } } return(requiredPartyRelationTypeCount); }