public async Task <ActionResult <IEnumerable <T> > > PostPackage([FromBody] List <T> values) { using (var transaction = new DBTransaction(table.Connection, CurrentUser)) { T current = null; try { if (values == null) { throw new InvalidOperationException("Some deserialization problem!"); } foreach (var value in values) { transaction.AddItem(value, true); } foreach (var value in values) { current = value; if (IsDenied(value, transaction.Caller)) { transaction.Rollback(); return(Forbid()); } await value.Save(transaction); } transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); return(BadRequest(ex, current)); } } return(Ok(values)); }