public string AddPokemon(string name) { string result = getPokemonJSON(name); if (result == string.Empty) { return("error"); } AnPokemonProxy pokemon = JsonConvert.DeserializeObject <AnPokemonProxy>(result); AnServiceHelper pokemonHelper = new AnServiceHelper(UserConnection, "AnPokemons", "AnName", pokemon.Name); if (pokemonHelper.isAdded()) { return("exists"); } pokemonHelper.setImageId(pokemon); AnServiceHelper helper = new AnServiceHelper(UserConnection, "AnLookup_PokemonType", "Name", pokemon.Type); helper.insert(); pokemon.TypeId = helper.getId(); pokemonHelper.insert(pokemon); pokemon.Id = pokemonHelper.getId(); foreach (string move in pokemon.Moves) { helper = new AnServiceHelper(UserConnection, "AnLookup_MoveType", "Name", move); helper.insert(); string moveId = helper.getId(); helper.insert("AnPokemonMove", "AnMoveId", moveId, "AnPokemonId", pokemon.Id); } return("ok"); }
/// <summary> /// method to insert image from url to DB and set the relevant property of pokemon object /// </summary> /// <param name="pokemon">object which property needs to be set</param> public void setImageId(AnPokemonProxy pokemon) { var imageApi = new ImageAPI(userConnection); WebRequest imageRequest = WebRequest.Create(pokemon.ImageURL); MemoryStream Image = new MemoryStream(); imageRequest.GetResponse().GetResponseStream().CopyTo(Image); pokemon.ImageId = imageApi.Save(Image, "image/png", $"An{pokemon.Name}Image").ToString(); }
/// <summary> /// method to insert new pokemon to DB using properties of AnPokemonProxy object /// </summary> /// <param name="pokemon">object which needs to be inserted</param> public void insert(AnPokemonProxy pokemon) { var insertPok = new Insert(userConnection).Into(sourceSchemaName) .Set("AnName", Column.Parameter(pokemon.Name)) .Set("AnHeight", Column.Parameter(pokemon.Height)) .Set("AnWeight", Column.Parameter(pokemon.Weight)) .Set("AnWeightAndHeight", Column.Parameter(pokemon.Weight + pokemon.Height)) .Set("AnLookup_PokemonTypeId", Column.Parameter(pokemon.TypeId)) .Set("AnImageLinkId", Column.Parameter(pokemon.ImageId)); insertPok.Execute(); }