Realizei uma implementação simples com o intuito de salvar as negociações importadas no indexedDB, tornando-as persistentes também, assim como as negociações inseridas manualmente. Está funcionando corretamente. Gostaria de saber se há alguma forma mais simples de salvar os dados através do NegociacaoDao.adiciona(), sem a necessidade de chamar a ConnectionFactory.getConnection() em toda a transação que for necessário o acesso ao indexedDB, ou se essa é mesmo a forma correta de utilização dessa classe.
Obrigado! Segue código do método abaixo:
importaNegociacoes() {
let service = new NegociacaoService();
service
.obterNegociacoes()
.then(negociacoes =>
negociacoes.filter(negociacao =>
!this._listaNegociacoes.negociacoes.some(negociacaoExistente =>
JSON.stringify(negociacao) == JSON.stringify(negociacaoExistente)))
)
.then(negociacoes => {
negociacoes.forEach(negociacao => {
ConnectionFactory.getConnection()
.then(connection => {
new NegociacaoDao(connection)
.adiciona(negociacao)
.then(() => {
this._listaNegociacoes.adiciona(negociacao);
this._mensagem.texto = 'Negociações do período importadas com sucesso';
})
})
})
})
.catch(erro => this._mensagem.texto = erro);
}