Take advantage of dependency injection in ASP.Net Core to plug in components and improve code maintenance and testability