Пример #1
0
        public async Task <IActionResult> Get(int pageIndex = 1, int pageSize = 10)
        {
            PaginatedList <CurrentTimeQuery> pastTimes;

            await using (var db = new ClockworkContext())
            {
                pastTimes = await PaginatedList <CurrentTimeQuery> .CreateAsync(db.CurrentTimeQueries.AsNoTracking(), pageIndex, pageSize);
            }

            var returnPastTimes = pastTimes.Select(pt => new
            {
                Id       = pt.CurrentTimeQueryId,
                Time     = TimeHelpers.ConvertTimeToTimeZone(pt.Time, pt.TimeZone).ToString("g"),
                TimeZone = pt.TimeZone
            });

            return(Ok(new { pastTimes = returnPastTimes, pageIndex = pageIndex, totalPages = pastTimes.TotalPages }));
        }
        public async Task <IActionResult> Get(string timeZone, int pageIndex = 1, int pageSize = 10)
        {
            var utcTime    = DateTime.UtcNow;
            var serverTime = DateTime.Now;
            var ip         = this.HttpContext.Connection.RemoteIpAddress.ToString();

            var newCurrentTime = new CurrentTimeQuery
            {
                UTCTime  = utcTime,
                ClientIp = ip,
                Time     = serverTime,
                TimeZone = timeZone
            };

            PaginatedList <CurrentTimeQuery> pastTimes;

            await using (var db = new ClockworkContext())
            {
                await db.CurrentTimeQueries.AddAsync(newCurrentTime);

                var count = await db.SaveChangesAsync();

                Console.WriteLine("{0} records saved to database", count);

                pastTimes = await PaginatedList <CurrentTimeQuery> .CreateAsync(db.CurrentTimeQueries.AsNoTracking(), pageIndex, pageSize);

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

            var returnPastTimes = pastTimes.Select(pt => new
            {
                Id       = pt.CurrentTimeQueryId,
                Time     = TimeHelpers.ConvertTimeToTimeZone(pt.Time, pt.TimeZone).ToString("g"),
                TimeZone = pt.TimeZone
            });

            return(Ok(new { currentTime = TimeHelpers.ConvertTimeToTimeZone(newCurrentTime.Time, timeZone).ToString("g"), pastTimes = returnPastTimes, totalPages = pastTimes.TotalPages }));
        }