Introduce BulkCommand and move session.SaveChanges to controller level.

Замечение по коду

Как я вижу из контроллера, у вас FinishProduct и AuditProducts имеют схожую, но немного РАЗНУЮ логику, и поэтому они должны быть разделены.