private static NavigationCollectionRepository <Author, ICollection <Book>, Book> GetBooksNavRepo(Author author) { var item = new AlreadyLoadedItem <Author>(author, null); var repo = new NavigationCollectionRepository <Author, ICollection <Book>, Book>(item, a => a.Books, new DefaultNavigationSetter <Author, ICollection <Book> >(a => a.Books)); return(repo); }
public async Task <Acknowledgment> DeleteAllAsync(IRestCollectionQuery query) { _context.Transaction.StartTransaction(); await _context.Repository.InitializeAsync(); var queryBuilder = new ContextQueryBuilder <TItem>(_context, query); IQueryable <TItem> items = queryBuilder.BuildQueryable(); foreach (TItem item in items.ToList()) { var loadedItem = new AlreadyLoadedItem <TItem>(item, string.Empty); if (!_context.AuthorizationChecker.CanDeleteItem(loadedItem)) { throw new NotAuthorizedForItemException(AuthorizableVerb.Delete); } _context.Repository.MarkDeleted(item); } await _context.Transaction.SaveChangesAsync(); return(new Acknowledgment()); }