예제 #1
0
        /// <summary>
        /// Busca una especie usando una URL especifica
        /// </summary>
        /// <param name="url"></param>
        /// <returns></returns>
        public SpeciesApi searchSpecies(string url)
        {
            string     response   = ApiHelper.RunRequest(url, "", "GET", "application/json; charset=utf-8");
            SpeciesApi speciesApi = deserializeResult <SpeciesApi>(response);

            return(speciesApi);
        }
예제 #2
0
        /// <summary>
        /// Busca una especie en un servicio externo a partir del Id
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public SpeciesApi searchSpecies(int id)
        {
            string response = ApiHelper.RunRequest(_appConfig["ExternalServicesURL:Species"] + id.ToString() + "/", "", "GET", "application/json; charset=utf-8");

            if (string.IsNullOrEmpty(response))
            {
                return(null);
            }

            SpeciesApi speciesApi = deserializeResult <SpeciesApi>(response);

            return(speciesApi);
        }
예제 #3
0
 /// <summary>
 /// Busca una especie en una API según su url. (Y se utiliza Cache)
 /// </summary>
 /// <param name="url"></param>
 /// <param name="speciesApi"></param>
 private void searchSpeciesWithCache(string url, out SpeciesApi speciesApi)
 {
     if (!string.IsNullOrEmpty(url))
     {
         if (!_memoryCache.TryGetValue(url, out speciesApi))
         {
             speciesApi = _swAPI.searchSpecies(url);
             _memoryCache.Set(url, speciesApi);
         }
     }
     else
     {
         speciesApi = null;
     }
 }
예제 #4
0
        public static Character Map(CharacterApi characterApi, PlanetApi planetApi, SpeciesApi speciesApi, List <Rating> ratings)
        {
            Character result = new Character();

            result.name         = characterApi.name;
            result.height       = characterApi.height;
            result.mass         = characterApi.mass;
            result.hair_color   = characterApi.hair_color;
            result.skin_color   = characterApi.skin_color;
            result.eye_color    = characterApi.eye_color;
            result.birth_year   = characterApi.birth_year;
            result.gender       = characterApi.gender;
            result.homeworld    = HomeWorldMapper.Map(planetApi);
            result.species_name = (speciesApi != null) ? speciesApi.name : "";

            if (ratings != null && ratings.Count() > 0)
            {
                result.max_rating     = ratings.Max(x => x.Score).ToString();
                result.average_rating = Math.Round(ratings.Average(x => x.Score), 2).ToString();
            }


            return(result);
        }