/// <summary> /// Deletes a <see cref="Relation"/> /// </summary> /// <param name="relation">Relation to Delete</param> public void Delete(IRelation relation) { if (DeletingRelation.IsRaisedEventCancelled(new DeleteEventArgs <IRelation>(relation), this)) { return; } var uow = UowProvider.GetUnitOfWork(); using (var repository = RepositoryFactory.CreateRelationRepository(uow)) { repository.Delete(relation); uow.Commit(); } DeletedRelation.RaiseEvent(new DeleteEventArgs <IRelation>(relation, false), this); }
/// <summary> /// Deletes all <see cref="Relation"/> objects based on the passed in <see cref="RelationType"/> /// </summary> /// <param name="relationType"><see cref="RelationType"/> to Delete Relations for</param> public void DeleteRelationsOfType(IRelationType relationType) { var relations = new List <IRelation>(); var uow = UowProvider.GetUnitOfWork(); using (var repository = RepositoryFactory.CreateRelationRepository(uow)) { var query = new Query <IRelation>().Where(x => x.RelationTypeId == relationType.Id); relations.AddRange(repository.GetByQuery(query).ToList()); foreach (var relation in relations) { repository.Delete(relation); } uow.Commit(); } DeletedRelation.RaiseEvent(new DeleteEventArgs <IRelation>(relations, false), this); }