public void RemoveCommunicationMethod(CommunicationMethodEntity communicationMethodEntity)
        {
            var result = _directoryContext.CommunicationMethodEntities.SingleOrDefault(p => p.Address == communicationMethodEntity.Address);

            _directoryContext.Entry(result).State = EntityState.Deleted;
            _directoryContext.SaveChanges();
        }
        public void UpdateCommunicationMethod(CommunicationMethodEntity communicationMethodEntity)
        {
            var result = _directoryContext.CommunicationMethodEntities
                         .SingleOrDefault(p => p.CommunicationMethodId == communicationMethodEntity.CommunicationMethodId);

            if (result != null)
            {
                _directoryContext.Entry(result).CurrentValues.SetValues(communicationMethodEntity);
            }
        }
        public void AddCommunicationMethod(ContactEntity contactEntity, CommunicationMethodEntity communicationMethodEntity)
        {
            var result = _directoryContext.CommunicationMethodEntities
                         .SingleOrDefault(p => p.Address == communicationMethodEntity.Address && p.TypeId == communicationMethodEntity.TypeId && p.ContactId == contactEntity.ContactId);

            if (result == null)
            {
                communicationMethodEntity.ContactId = contactEntity.ContactId;
                _directoryContext.CommunicationMethodEntities.Add(communicationMethodEntity);
                _directoryContext.SaveChanges();
                _directoryContext.Entry(communicationMethodEntity).Reload();
            }
            else
            {
                throw new System.Exception("An entry with this address is already exists");
            }
        }