added a new FindById<TEntity>(id, currentUser) method to DataContext
temporary checkin, things are broken.
fixed the DeleteById method and also implemented the two new custom exceptions in the most important places.
fixed some issues with not committing transactions at the right time.