public bool Delete(IEnumerable<PartyRelationshipType> entities)
{
Contract.Requires(entities != null);
Contract.Requires(Contract.ForAll(entities, (PartyRelationshipType e) => e != null));
Contract.Requires(Contract.ForAll(entities, (PartyRelationshipType e) => e.Id >= 0));
using (IUnitOfWork uow = this.GetUnitOfWork())
{
IRepository<PartyRelationshipType> repoPR = uow.GetRepository<PartyRelationshipType>();
IRepository<PartyType> repoType = uow.GetRepository<PartyType>();
foreach (var entity in entities)
{
var latest = repoPR.Reload(entity);
//If there is a relation between entity and a party we couldn't delete it
if (entity.PartyRelationships.Count() > 0)
BexisException.Throw(entity, "There are some relations between this 'PartyRelationshipType' and 'Party'", BexisException.ExceptionType.Delete,true);
// remove all associations between the entity and AssociatedPairs
entity.AssociatedPairs.ToList().ForEach(item => item.PartyRelationshipType = null);
entity.AssociatedPairs.Clear();
repoPR.Delete(entity);
}
uow.Commit();
}
return (true);
}