Olá, pessoal!
Venho pedir ajuda no código do curso. Realizei as ações para evitar que as negociações sejam duplicadas, porém quando incluo a negociação em uma mesma data, ela ainda é registrada.
Código do botão:
const botaoImporta = document.querySelector('#botao-importa');
if (botaoImporta) {
botaoImporta.addEventListener('click', () => {
controller.importaDados();
});
} else {
throw Error('Botão importa não foi encontrado.');
}
Código para evitar a duplicação:
public importaDados(): void {
this.negociacoesService
.obterNegociacoesDoDia()
.then(negociacoesDeHoje => {
return negociacoesDeHoje.filter(negociacaoDeHoje => {
return !this.negociacoes
.lista()
.some(negociacao => negociacao
.ehIgual(negociacaoDeHoje)
);
});
})
.then(negociacoesDeHoje => {
for(let negociacao of negociacoesDeHoje) {
this.negociacoes.adiciona(negociacao);
}
this.negociacoesView.update(this.negociacoes);
})
}
Código relacionado às datas:
public ehIgual(negociacao: Negociacao): boolean {
return this.data.getDate() === negociacao.data.getDate()
&& this.data.getMonth() === negociacao.data.getMonth()
&& this.data.getFullYear() === negociacao.data.getFullYear();
}
Agradeço a colaboração!