/// <summary> /// Googleカレンダーから指定した年の祝日を取得する /// </summary> /// <param name="year">祝日を取得する年(西暦)。</param> /// <param name="apiKey">Google API key。</param> /// <param name="calendarId">使用するカレンダーのID。</param> /// <returns>指定された年の祝日を表す配列。</returns> public static NationalHoliday[] GetNationalHolidays(int year, string apiKey, string calendarId, ArrayList LocalHoliday) { //URLを作成する const string googleUrl = "https://www.googleapis.com/calendar/v3/calendars/"; const string methodString = "events"; const int maxResults = 100; //クエリーを作成する string query = string.Format( "key={0}&" + "timeMin={1}-01-01T00:00:00Z&" + "timeMax={2}-01-01T00:00:00Z&" + "maxResults={3}", apiKey, year, year + 1, maxResults); //つなげて完成 string url = googleUrl + calendarId + "/" + methodString + "?" + query; //サーバーからデータを受信する HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); HttpWebResponse res = (HttpWebResponse)req.GetResponse(); Stream st = res.GetResponseStream(); StreamReader sr = new StreamReader(st); //すべてのデータを受信する string jsonString = sr.ReadToEnd(); //後始末 sr.Close(); st.Close(); res.Close(); //受信したデータを解析する System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); Dictionary <string, object> jsonDic = serializer.Deserialize <Dictionary <string, object> >(jsonString); if (!jsonDic.ContainsKey("items")) { //itemsがなかったら失敗したと判断する return(new NationalHoliday[0]); } System.Collections.ArrayList items = (System.Collections.ArrayList)jsonDic["items"]; //見つかった祝日の名前と日付を取得する NationalHoliday[] holidays = new NationalHoliday[items.Count]; int i; for (i = 0; i < items.Count; i++) { Dictionary <string, object> item = (Dictionary <string, object>)items[i]; string title = (string)item["summary"]; string startTime = (string)((Dictionary <string, object>)item["start"])["date"]; if (LocalHoliday.IndexOf(title) == -1) { holidays[i] = new NationalHoliday(title, startTime); } } return(holidays); }
public void CreateTagFor(NationalHoliday holiday) { var partyTag = GameObject.Instantiate(tag, gameObjectWithTags); partyTag.name = "PARTY: " + holiday.name; partyTag.transform.position = holiday.place.position; var geoTag = partyTag.GetComponent <GeoTag>(); geoTag.tagName = holiday.name; geoTag.type = GeoTag.Type.Holiday; }
public async Task <JsonResult> Post(NationalHoliday nationalHoliday) { var header = HttpContext.Session.GetString("token"); httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", header); var response = await httpClient.PostAsJsonAsync("NationalHoliday", nationalHoliday); string apiResponse = await response.Content.ReadAsStringAsync(); var data = JsonConvert.DeserializeObject <ResponseVM <NationalHoliday> >(apiResponse); return(new JsonResult(data)); }
public async Task <JsonResult> Put(NationalHoliday nationalHoliday) { var header = HttpContext.Session.GetString("token"); httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", header); StringContent content = new StringContent(JsonConvert.SerializeObject(nationalHoliday), Encoding.UTF8, "application/json"); var response = await httpClient.PutAsync(typeof(NationalHoliday).Name, content); string apiResponse = await response.Content.ReadAsStringAsync(); var data = JsonConvert.DeserializeObject <NationalHoliday>(apiResponse); return(new JsonResult(data)); }