Based on a number of posts to abstract code out from the Controller and make it more dependency injected.
ASP.NET MVC Controllers: Push the envelope
https://www.danylkoweb.com/Blog/aspnet-mvc-controllers-push-the-envelope-PN
The Skinniest ASP.NET MVC Controllers You've Ever Seen, Part 1
https://www.danylkoweb.com/Blog/the-skinniest-aspnet-mvc-controllers-youve-ever-seen-part-1-Q0
The Skinniest ASP.NET MVC Controllers You've Ever Seen, Part 2
https://www.danylkoweb.com/Blog/the-skinniest-aspnet-mvc-controllers-youve-ever-seen-part-2-Q2
ASP.NET MVC Data Layer: Access Your Data Layer Through Unique Requests
https://www.danylkoweb.com/Blog/aspnet-mvc-data-layer-access-your-data-layer-through-unique-requests-PV
UPDATE: Using Dependency Injection On ViewModelBuilder
https://www.danylkoweb.com/Blog/update-using-dependency-injection-on-viewmodelbuilder-AE
A Better Entity Framework Unit of Work Pattern
https://www.danylkoweb.com/Blog/a-better-entity-framework-unit-of-work-pattern-DD
What is Loose Coupling
https://www.danylkoweb.com/Blog/what-is-loose-coupling-G6
Real-World Refactoring: DI in ThinController Project
https://www.danylkoweb.com/Blog/real-world-refactoring-di-in-thincontroller-project-KJ
Post any questions here or at https://www.danylkoweb.com/
Enjoy!