コード例 #1
0
        public IActionResult Get()
        {
            List <string> result      = new List <string>();
            var           timeZoneIds = TimeZoneIds.GetAllTimeZoneInfo();

            foreach (TimeZoneInfo tzi in timeZoneIds)
            {
                result.Add(tzi.Id);
            }
            Console.WriteLine("TimeZone Ids fetched" + DateTime.UtcNow);
            return(Ok(result));
        }
コード例 #2
0
        public IActionResult GetWorldTime(int id)
        {
            var utcTime    = DateTime.UtcNow;
            var serverTime = DateTime.Now;
            var ip         = HttpContext.Connection.RemoteIpAddress.ToString();
            var timeZones  = TimeZoneIds.GetAllTimeZoneInfo();

            if (id > timeZones.Count - 1)
            {
                return(StatusCode(404));
            }

            var requestedTimeZone = timeZones[id].Id.ToString();
            var convertedDateTime = TimeZoneInfo.ConvertTimeFromUtc(utcTime, timeZones[id]).ToShortTimeString();

            var returnVal = new WorldTimeQuery
            {
                ClientIp          = ip,
                UTCTime           = utcTime,
                RequestedTimeZone = requestedTimeZone,
                ConvertedDateTime = convertedDateTime
            };

            using (var db = new ClockworkContext())
            {
                db.WorldTimeQueries.Add(returnVal);
                var count = db.SaveChanges();
                Console.WriteLine("{0} records saved to database", count);

                Console.WriteLine();
                foreach (var WorldTimeQuery in db.WorldTimeQueries)
                {
                    Console.WriteLine($" - {WorldTimeQuery.RequestedTimeZone} : {WorldTimeQuery.ConvertedDateTime}");
                }
            }

            return(Ok(returnVal));
        }