Olá Davi, tudo certo?
É exatamente isso. A função dos Controllers é de juntar os dados e pedir uma View, quando um método dele é requisitado.
É uma boa prática essa separação de código, porque principalmente trabalhando em uma equipe, os códigos estarão nos lugares que são esperados que estejam. Controllers atuam com as rotas e os métodos que serão executado para chamar uma View, Repositories mantêm o controle dos dados de um modelo, Models são as classes que ligam os dados da aplicação com o banco de dados e assim por diante.
Isso facilita no trabalho em equipe e principalmente na manutenção. Se o método que altera a quantidade de produtos de um pedido precisar de manutenção algum dia, fica mais fácil procurar no repositório que envolve a entidade ItemPedido
.
Bons estudos!