public async Task <Unit> Handle(NomeDeModeloAlterado request, CancellationToken cancellationToken)
        {
            var modelo = await repositorioDeModelos.ObtemModelo(request.Codigo);

            modelo.Replay(request);

            await repositorioDeModelos.Update(modelo);

            return(Unit.Value);
        }
        public Recurso AdicionaRecursoDeModelo(SolicitacaoDeAdicaoDeRecursoDeModelo solicitacao)
        {
            unitOfWork.BeginTransaction();

            try
            {
                var codigo = new CodigoDeModelo(solicitacao.Codigo);

                var modelo = repositorioDeModelos.ObtemModelo(codigo);

                var recurso = modelo.AdicionaRecurso(solicitacao.Tipo, solicitacao.Descricao, solicitacao.Custo, solicitacao.Unidades);

                repositorioDeModelos.Update(modelo);

                unitOfWork.Commit();

                return(recurso);
            }
            catch (Exception)
            {
                unitOfWork.Rollback();

                throw;
            }
        }