Example #1
0
        protected override async Task <FillDataFromServerCommandResponse> Execute(FillDataFromServerCommand request, CancellationToken cancellationToken)
        {
            var result = new FillDataFromServerCommandResponse();


            if ((await _cryptoRepository.GetAll()).Count > 0)
            {
                return(result);
            }

            var data = await _coinMarketCapService.GetCryptoList();

            foreach (var cryptoDto in data)
            {
                if (await _cryptoRepository.ExistsSymbol(cryptoDto.Symbol))
                {
                    continue;
                }

                await _cryptoRepository.Create(new CryptoCurrency(cryptoDto.Name, cryptoDto.Symbol, cryptoDto.Id));

                result.TotalRecordAdded++;
            }

            await _cryptoRepository.UnitOfWork.Commit(cancellationToken);

            return(result);
        }