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); }
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); } }