예제 #1
0
        private static void MapAndAdd(string availableZone)
        {
            string[] parts = availableZone.Split('/');

            Timezone area = new Timezone
            {
                Area     = parts[0],
                Location = parts.Length > 1 ? parts[1] : string.Empty,
                Region   = parts.Length > 2 ? parts[2] : string.Empty
            };

            areas.Add(area);
        }
예제 #2
0
        public bool TryLoad(string zone, out Timezone result)
        {
            zone = zone.Replace(' ', '_');

            if (!areas.Any())
            {
                string[] availableZones = HttpService.Instance.GetAsync <string[]>("http://worldtimeapi.org/api/timezone").Result;

                foreach (string availableZone in availableZones)
                {
                    MapAndAdd(availableZone);
                }
            }

            result = areas.FirstOrDefault(a => string.Equals(a.Region, zone, StringComparison.CurrentCultureIgnoreCase) ||
                                          string.Equals(a.Location, zone, StringComparison.CurrentCultureIgnoreCase) && a.Region == string.Empty ||
                                          string.Equals(a.Area, zone, StringComparison.CurrentCultureIgnoreCase) && a.Location == string.Empty);
            return(result != null);
        }
예제 #3
0
        public TimezoneInfo GetTime(Timezone zone)
        {
            string url = BuildUrl(zone);

            return(HttpService.Instance.GetAsync <TimezoneInfo>(url).Result);
        }
예제 #4
0
 private static string BuildUrl(Timezone zone)
 {
     return($"http://worldtimeapi.org/api/timezone/{zone}");
 }