/// <summary> /// CocktailItems画面を表示する処理 /// theCocktailDBのAPIより検索に指定された項目のデータを取得し表示する /// </summary> /// <returns>CocktailItems</returns> public ActionResult CocktailItems() { logger.Debug("Start"); //GETパラメータをログに出力 LogHelper.InfoLog_HttpGetParameter(logger, Request); CocktailNameModel cnm = null; //レスポンスをデシリアライズしたデータを入れる変数 if (Request.QueryString["CocktailName"] != null) { cnm = CocktailAPI.NameSearch(Request.QueryString["CocktailName"], logger); } else { //すべてを表示する cnm = CocktailAPI.NameSearch("", logger); } //htmlに表示するデータの格納 ViewBag.drinks = cnm.drinks; logger.Debug("End"); //自分自身を表示 return(View()); }
/// <summary> /// 名前でカクテルを検索する /// </summary> /// <param name="i_searchName">検索に使用する名前</param> /// <param name="i_logger">ロガー</param> /// <returns></returns> public static CocktailNameModel NameSearch(String i_searchName, ILog i_logger) { i_logger.Debug("Start"); //接続URL String baseUrl = "https://www.thecocktaildb.com/api/json/v1/1/search.php?"; //GETパラメータの作成 Dictionary <string, string> sendGetParams = new Dictionary <string, string>(); //名前でカクテルを検索する場合 sendGetParams.Add("s", i_searchName); WebResponse webRes = HttpAccess(baseUrl, sendGetParams, i_logger); CocktailNameModel cnm = JsonPurse(webRes, i_logger); i_logger.Debug("End"); return(cnm); }
/// <summary> /// Jsonデータの解析を行う /// </summary> /// <param name="i_res">Jsonデータ</param> /// <param name="i_logger">ロガー</param> /// <returns>解析後のJsonデータ</returns> private static CocktailNameModel JsonPurse(WebResponse i_res, ILog i_logger) { i_logger.Debug("Start"); CocktailNameModel cnm = null; //デシリアライズ using (i_res) { using (Stream resStream = i_res.GetResponseStream()) { DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(CocktailNameModel)); cnm = (CocktailNameModel)serializer.ReadObject(resStream); } } i_logger.Debug("End"); return(cnm); }
/// <summary> /// IDでカクテルを検索する /// </summary> /// <param name="i_searchId">検索に使用するID</param> /// <param name="i_logger">ロガー</param> /// <returns></returns> public static Drink IdSearch(String i_searchId, ILog i_logger) { i_logger.Debug("Start"); //接続URL String baseUrl = "https://www.thecocktaildb.com/api/json/v1/1/lookup.php?"; //GETパラメータの作成 Dictionary <string, string> sendGetParams = new Dictionary <string, string>(); //名前でカクテルを検索する場合 sendGetParams.Add("i", i_searchId); WebResponse webRes = HttpAccess(baseUrl, sendGetParams, i_logger); CocktailNameModel cnm = JsonPurse(webRes, i_logger); Drink drink = cnm.drinks[0]; i_logger.Debug("End"); return(drink); }