コード例 #1
0
        /// <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);
        }
コード例 #2
0
    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;
    }
コード例 #3
0
        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));
        }
コード例 #4
0
        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));
        }