Responsabilidade de um ViewModel

Estou construindo uma ferramenta cujo objetivo é baixar um arquivo com base em alguns parâmetros.

O primeiro passo é definir (ou recuperar) esses parâmetros.

Os diferentes conjuntos de parâmetros são recuperados (digamos, por meio de arquivos de configuração) por um FileDownloadsManager: ele sabe exatamente quais parâmetros usar para fazer o download do arquivo correto.

esses parâmetros são armazenados em uma classe e eu tenho uma lista de instâncias dessa classe.

Isso significa que eu posso baixar meu arquivo com vários conjuntos de parâmetros possíveis.

Em torno desses ParameterSets, criei ParametersSetsViewModels para que eu possa exibi-los em uma lista e adicionar algumas propriedades Somente Visualização. Internamente, os ParametersSetsViewModels têm uma referência aos ParametersSets subjacentes usados como fonte para os membros do View Model.

agora, quando seleciono meu conjunto de parâmetros, gostaria que o arquivo relacionado fosse baixado.

De quem deve ser essa responsabilidade?

Tenho a sensação de que, se o ViewModel estiver muito ativo, por ter um método que retorna o arquivo baixado, isso seria contra o padrão MVVM; Qual é a sua opinião sobre isso ?

Bônus: o download deve ser possível em segundo plano com os métodos assíncronos do BackgroundWorkers ou do WebClient.

questionAnswers(1)

yourAnswerToTheQuestion