Esempio n. 1
0
        public async Task <bool> CheckMaxFailedTimes(EthEventDTO eventDto, int maxTimes = 3)
        {
            var eventDB = await covidUnitOfWork.EthEvents.GetFullById(eventDto.Id);

            if (eventDB == null)
            {
                await covidUnitOfWork.EthEvents.AddAsync(eventDto);

                await covidUnitOfWork.CommitAsync();

                return(false);
            }

            if (eventDB.IndexedParameters[0].Value == eventDto.IndexedParameters[0].Value)
            {
                eventDB.FailedTimes++;
                if (eventDB.FailedTimes >= maxTimes)
                {
                    return(true);
                }

                covidUnitOfWork.EthEvents.Update(eventDB);
                await covidUnitOfWork.CommitAsync();

                return(false);
            }

            logger.LogCritical("The ids of the Events are not unique", eventDto, eventDB);
            return(true);
        }
Esempio n. 2
0
        public async Task ImportAsync(EthEventDTO ethEvent)
        {
            var credential = RegisteredCredential.From(ethEvent);

            try
            {
                var country = await this.covidUnitOfWork.Countries.SingleOrDefaultAsync(x => x.Geom.Contains(credential.Location));

                var state = await this.covidUnitOfWork.States.SingleOrDefaultAsync(x => x.Geom.Contains(credential.Location));

                credential.CountryGid = country.Gid;
                credential.StateGid   = state.Gid;
                await covidUnitOfWork.Credentials.AddAsync(credential);

                await covidUnitOfWork.CommitAsync();
            }
            catch (Exception e)
            {
                throw new Exception($"Error on EthEvent transaction hash: {ethEvent.TransactionHash}", e);
            }
        }