コード例 #1
0
        public IActionResult GetTime([FromQuery] string timezoneId)
        {
            var timezone = TimeZoneInfo.FindSystemTimeZoneById(timezoneId);

            if (timezone == null)
            {
                timezone = TimeZoneInfo.Utc;
            }

            var utcTime      = DateTime.UtcNow;
            var timezoneTime = TimeZoneInfo.ConvertTime(utcTime, TimeZoneInfo.Utc, timezone);
            var remoteIp     = HttpContext.Connection.RemoteIpAddress.ToString();

            var currentTimeDetail = new CurrentTimeQuery
            {
                UTCTime    = utcTime,
                ClientIp   = remoteIp,
                Time       = timezoneTime,
                TimezoneId = timezone.Id,
                Timezone   = timezone.DisplayName
            };

            _context.CurrentTimeQueries.Add(currentTimeDetail);
            _context.SaveChanges();

            return(Ok(currentTimeDetail));
        }
コード例 #2
0
        public IActionResult Get()
        {
            var utcTime    = DateTime.UtcNow;
            var serverTime = DateTime.Now;
            var ip         = this.HttpContext.Connection.RemoteIpAddress.ToString();

            var returnVal = new CurrentTimeQuery
            {
                UTCTime          = utcTime,
                ClientIp         = ip,
                Time             = serverTime,
                SelectedTimeZone = TimeZoneInfo.Local.Id
            };

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

                Console.WriteLine();
                foreach (var CurrentTimeQuery in db.CurrentTimeQueries)
                {
                    Console.WriteLine(" - {0}", CurrentTimeQuery.UTCTime);
                }
            }

            //return Ok(returnVal);
            return(Ok(TimeZoneService.GetTime(TimeZoneInfo.Local.Id).ToString()));
        }
コード例 #3
0
        public IActionResult GetZone(string zone)
        {
            var zoneTime = new DateTime();
            var utcTime  = DateTime.UtcNow;

            foreach (TimeZoneInfo z in TimeZoneInfo.GetSystemTimeZones())
            {
                if (z.Id == zone)
                {
                    zoneTime = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(utcTime, z.Id);
                }
            }

            var returnVal = new CurrentTimeQuery
            {
                UTCTime  = DateTime.UtcNow,
                ClientIp = this.HttpContext.Connection.RemoteIpAddress.ToString(),
                Time     = zoneTime,
                TimeZone = zone
            };


            using (var db = new ClockworkContext())
            {
                db.CurrentTimeQueries.Add(returnVal);
                db.SaveChanges();
            }
            return(Ok(returnVal));
        }
コード例 #4
0
        public IActionResult Get(string timeZoneId)
        {
            timeZoneId = HttpUtility.UrlDecode(timeZoneId);

            var utcTime  = DateTime.UtcNow;
            var userTime = ConvertDateToTimeZone(utcTime, timeZoneId);
            var ip       = this.HttpContext.Connection.RemoteIpAddress.ToString();

            var returnVal = new CurrentTimeQuery
            {
                UTCTime  = utcTime,
                ClientIp = ip,
                Time     = userTime,
                TimeZone = timeZoneId
            };

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

                Console.WriteLine();
                foreach (var CurrentTimeQuery in db.CurrentTimeQueries)
                {
                    Console.WriteLine(" - {0}", CurrentTimeQuery.UTCTime);
                }
            }

            return(Ok(returnVal));
        }
コード例 #5
0
        public void ValidateTimeZones()
        {
            List <SelectListItem> testList = CurrentTimeQuery.GetTimeZones();
            int result = testList.Count;

            Assert.AreEqual(593, result);
            Assert.AreEqual("--", testList[0].Text);
        }
コード例 #6
0
        public async Task <IActionResult> Get(string userTimezoneId)
        {
            TimeZoneInfo getTimeZoneId = TimeZoneInfo.FindSystemTimeZoneById(userTimezoneId);

            var utcTime    = DateTime.UtcNow;
            var serverTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, getTimeZoneId);
            var ip         = this.HttpContext.Connection.RemoteIpAddress.ToString();

            int pageNo   = 1;
            int pageSize = 10;
            //adding page to my data.
            Pagination <CurrentTimeQuery> paginationData;



            var returnVal = new CurrentTimeQuery
            {
                UTCTime  = utcTime,
                ClientIp = ip,
                Time     = serverTime
            };

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

                Console.WriteLine();
                foreach (var CurrentTimeQuery in db.CurrentTimeQueries)
                {
                    Console.WriteLine(" - {0}", CurrentTimeQuery.UTCTime);
                }

                //default to desc so new entry can be easily see
                var data = db.CurrentTimeQueries.AsNoTracking().OrderByDescending(x => x.CurrentTimeQueryId);
                paginationData = await Pagination <CurrentTimeQuery> .CreateAsync(data, pageNo, pageSize);
            }

            return(Ok(new
            {
                currentData = returnVal
                ,
                displayedData = paginationData
                ,
                pageNumber = 1
                ,
                pageNext = paginationData.HasNextPage
                ,
                pagePrev = paginationData.HasPreviousPage
                ,
                totalPage = paginationData.TotalPages
            }));
        }
コード例 #7
0
        public IActionResult GetRequests()
        {
            CurrentTimeQuery[] returnVal = new CurrentTimeQuery[0];

            // Get all of the entries in the database
            using (var db = new ClockworkContext())
            {
                returnVal = db.CurrentTimeQueries.ToArray();
            }

            // Send the entries back to the client
            return(Ok(returnVal));
        }
コード例 #8
0
        public CurrentTimeQueryDto GetCurrentTime(GetCurrentTimeArgs args)
        {
            var serverTime = DateTime.Now;

            var query = new CurrentTimeQuery
            {
                ClientIp   = args.ClientIp,
                Time       = serverTime,
                TimeZoneId = args.TimeZoneId,
                UTCTime    = serverTime.ToUniversalTime()
            };

            return(_mapper.Map(_repository.Create(query)));
        }