Beispiel #1
0
 private Pais GetCountryInDatabase(CountryBaseRequest filterInput)
 {
     return(_context.Paises
            .Include(ct => ct.Eletricidade)
            .Include(ct => ct.Eletricidade.Frequencias)
            .Include(ct => ct.Eletricidade.Voltagens)
            .Include(ct => ct.Eletricidade.PlugsTomadas)
            .Include(ct => ct.Linguagens)
            .Include(ct => ct.Localizacao)
            .Include(ct => ct.Localizacao.PaisesVizinhos)
            .Include(ct => ct.Moeda)
            .Include(ct => ct.Telefone)
            .Include(ct => ct.Vacina)
            .FirstOrDefault(ct => ct.Nome == filterInput.CountryName ||
                            ct.SiglaPais2Digitos == filterInput.CountryIso2));
 }
Beispiel #2
0
        public Task <PaisView> Get(CountryBaseRequest filterInput)
        {
            if (string.IsNullOrEmpty(filterInput.CountryIso2) && string.IsNullOrEmpty(filterInput.CountryName))
            {
                return(null);
            }
            // Treat request
            filterInput.CountryIso2 = filterInput.CountryIso2?.Trim();
            filterInput.CountryName = filterInput.CountryName?.Trim();
            // Faz a requisição ao Banco
            var dataBaseCountry = GetCountryInDatabase(filterInput);

            // Caso não exista ou esteja desatualizado, atualize no banco
            if (dataBaseCountry == null || DatabaseConfig.IsCountryNotUpdated(dataBaseCountry.CreationTime, dataBaseCountry.LastTimeUpdated))
            {
                // Envia para a camada de tratamento através do padrão Observable
                _bus.Send(new UpdateCountryEvent(filterInput.CountryName, filterInput.CountryIso2)).Wait();
                dataBaseCountry = GetCountryInDatabase(filterInput);
            }
            // Retorna para o FrontEnd o resultado
            var countryMapped = _mapper.Map <PaisView>(dataBaseCountry);

            return(Task.FromResult(countryMapped));
        }