public bool Delete(IEnumerable<DataType> entities)
{
Contract.Requires(entities != null);
Contract.Requires(Contract.ForAll(entities, (DataType e) => e != null));
Contract.Requires(Contract.ForAll(entities, (DataType e) => e.Id >= 0));
using (IUnitOfWork uow = this.GetUnitOfWork())
{
IRepository<DataType> repo = uow.GetRepository<DataType>();
foreach (var entity in entities)
{
var latest = repo.Reload(entity);
// remove all associations
latest.ApplicableUnits.ToList().ForEach(u => u.AssociatedDataTypes.Clear());
latest.ApplicableUnits.Clear();
latest.DataContainers.Clear();
repo.Delete(latest);
}
uow.Commit();
}
return (true);
}