public IActionResult Get(string zoneId = null)
        {
            var          utcTime      = DateTime.UtcNow;
            var          serverTime   = DateTime.Now;
            TimeZoneInfo timeZoneInfo = string.IsNullOrEmpty(zoneId)
                            ? null
                            : TimeZoneInfo.FindSystemTimeZoneById(zoneId);
            var requestedTimeZone = timeZoneInfo;


            var ip = this.HttpContext.Connection.RemoteIpAddress.ToString();

            var returnVal = GetReturnVal(zoneId, utcTime, serverTime, requestedTimeZone, ip);

            //List<string> TimeQuery = new List<string>();
            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($" - {CurrentTimeQuery.UTCTime}");

                    TimeQuery.Add(CurrentTimeQuery.UTCTime.ToString());
                }
            }
            return(Ok(returnVal));
        }
        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));
        }
Beispiel #3
0
        public IActionResult Get([FromBody] string body)
        {
            var      localDate  = JsonConvert.DeserializeObject <List <LocalTime> >(body);
            var      utcTime    = DateTime.UtcNow;
            var      serverTime = DateTime.Now;
            var      ip         = this.HttpContext.Connection.RemoteIpAddress.ToString();
            DateTime local      = new DateTime(localDate[0].year, localDate[0].month, localDate[0].day, localDate[0].hours, localDate[0].minutes, localDate[0].seconds);
            TimeSpan offset     = utcTime - local;

            var returnVal = new CurrentTimeQuery
            {
                UTCTime    = utcTime,
                ClientIp   = ip,
                ServerTime = serverTime,
                LocalTime  = local,
                UTCOffset  = offset.TotalHours
            };

            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));
        }
Beispiel #4
0
        public async Task <CurrentTimeQuery> GetTimeByTimezone(string ip, string timezone)
        {
            var utcTime             = DateTime.UtcNow;
            var serverTime          = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.UtcNow, timezone);
            var timezoneDisplayName = TimeZoneInfo.FindSystemTimeZoneById(timezone).DisplayName;
            var timeLog             = new CurrentTimeQuery
            {
                UTCTime  = utcTime,
                ClientIp = ip,
                Time     = serverTime,
                Timezone = timezoneDisplayName
            };

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

                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(timeLog);
        }
Beispiel #5
0
        public IActionResult Get(int current, int rowCount, string searchPhrase)
        {
            JObject response;

            using (var db = new ClockworkContext())
            {
                var allEntriesArray = (from entry in db.CurrentTimeQueries
                                       orderby entry.CurrentTimeQueryId descending
                                       select entry);

                var entriesArray = allEntriesArray.Skip((current - 1) * rowCount)
                                   .Take(rowCount)
                                   .ToArray();
                Console.WriteLine("{0} records in the database", entriesArray.Length);

                response =
                    new JObject(
                        new JObject(
                            new JProperty("current", current),
                            new JProperty("rowCount", -1),
                            new JProperty("total", allEntriesArray.Count()),
                            new JProperty("rows", JToken.FromObject(entriesArray))));
            }

            return(Ok(response));
        }
Beispiel #6
0
 public async Task <List <CurrentTimeQuery> > GetAllTimeLogs()
 {
     using (var db = new ClockworkContext())
     {
         return(await db.CurrentTimeQueries.Select(v => v).OrderByDescending(v => v.UTCTime).ToListAsync());
     }
 }
Beispiel #7
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
            };

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

                //List the saved timestamps
                Console.WriteLine();
                foreach (var CurrentTimeQuery in db.CurrentTimeQueries)
                {
                    Console.WriteLine(" - {0}", CurrentTimeQuery.UTCTime);
                }
            }

            return(Ok(returnVal));
        }
Beispiel #8
0
        public IActionResult Post([FromBody] string timeZone)
        {
            var utcTime    = DateTime.UtcNow;
            var serverTime = DateTime.Now;
            var ip         = this.HttpContext.Connection.RemoteIpAddress.ToString();
            var tzi        = TimeZoneInfo.GetSystemTimeZones().SingleOrDefault(t => t.DisplayName.Equals(timeZone));

            var returnVal = new CurrentTimeQuery
            {
                UTCTime      = utcTime,
                ClientIp     = ip,
                Time         = serverTime,
                Timezone     = timeZone,
                TimezoneTime = TimeZoneInfo.ConvertTimeFromUtc(utcTime, tzi)
            };

            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));
        }
        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));
        }
Beispiel #10
0
        public async Task <CurrentTimeQuery> GetTime(string ip)
        {
            var utcTime    = DateTime.UtcNow;
            var serverTime = DateTime.Now;

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

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

                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(timeLog);
        }
Beispiel #11
0
        public IActionResult Get(string timezone)
        {
            var utcTime    = DateTime.UtcNow;
            var serverTime = DateTime.Now;
            var ip         = this.HttpContext.Connection.RemoteIpAddress.ToString();

            var tzTime = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById(timezone));

            var returnVal = new CurrentTimeQuery
            {
                UTCTime  = utcTime,
                ClientIp = ip,
                Time     = serverTime,
                TZTime   = tzTime,
                TimeZone = timezone
            };

            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));
        }
Beispiel #12
0
 public IActionResult Get()
 {
     using (var db = new ClockworkContext())
     {
         return(new ObjectResult(db.CurrentTimeQueries.ToList()));
     }
 }
        public IActionResult Get()
        {
            try
            {
                var utcTime    = DateTime.UtcNow;
                var serverTime = TimeLordService.ConvertTime(DateTime.UtcNow, TimeLordService.CurrentTimeZone);
                var ip         = this.HttpContext.Connection.RemoteIpAddress.ToString();

                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);
                    }
                }

                return(Ok(returnVal));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
        public IActionResult Get()
        {
            var result = new ClockworkContext();
            var data   = result.CurrentTimeQueries.OrderByDescending(a => a.CurrentTimeQueryId).ToList();

            return(Ok(data));
        }
        public IActionResult Get(string timezone)
        {
            DateTime utcTime       = DateTime.UtcNow;
            var      serverTime    = DateTime.Now;
            var      ip            = this.HttpContext.Connection.RemoteIpAddress.ToString();
            var      additionalHrs = timezone.Replace(":", ".");

            additionalHrs = additionalHrs.Replace("p", "+").Replace("m", "-");

            var returnVal = new CurrentTimeQuery
            {
                UTCTime  = utcTime,
                ClientIp = ip,
                Time     = Convert.ToDateTime(utcTime.AddHours(Convert.ToDouble(additionalHrs))),
                TimeZone = timezone
            };

            using (var db = new ClockworkContext())
            {
                db.Database.Migrate();
                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));
        }
        public IActionResult GetCurrentTime(string timeZoneId)
        {
            var utcTime       = DateTime.UtcNow;
            var serverTime    = DateTime.Now;
            var requestedTime = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(serverTime, timeZoneId);
            var ip            = this.HttpContext.Connection.RemoteIpAddress.ToString();

            var returnVal = new CurrentTimeQuery
            {
                UTCTime    = utcTime,
                ClientIp   = ip,
                Time       = requestedTime,
                TimeZoneId = 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);
                }
            }

            //Leverage the ID field to hold user-friendly display name
            returnVal.SetTimeZoneIdToDisplayName();

            return(Ok(returnVal));
        }
Beispiel #17
0
        public IActionResult Post(string id)
        {
            if (string.IsNullOrEmpty(id))
            {
                return(Json(new { errorMessage = "Select a Time Zone" }));
            }

            var timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(id);

            if (timeZoneInfo == null)
            {
                return(Json(new { errorMessage = "No TimeZone Found" }));
            }

            var utcNow       = DateTime.UtcNow;
            var timeZoneTime = TimeZoneInfo.ConvertTimeFromUtc(utcNow, timeZoneInfo);
            var ip           = this.HttpContext.Connection.RemoteIpAddress.ToString();

            var returnVal = new CurrentTimeQuery
            {
                UTCTime  = utcNow,
                ClientIp = ip,
                Time     = timeZoneTime
            };

            using (var db = new ClockworkContext())
            {
                db.CurrentTimeQueries.Add(returnVal);
                var count = db.SaveChanges();
            }

            return(Ok(returnVal));
        }
        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
            };

            using (var db = new ClockworkContext())
            {
                /*TODO: to make this works properly, use tools > NuGet Package Manager > Package Manager Counsole, open "20171207214527_InitialCreate"
                 * in Migration folder and type in "Update-Database" to initialize the database, also check index.cshtml in clockwork.web, get url there need to be updated as well*/
                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));
        }
        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()));
        }
Beispiel #20
0
        public static void InsertNewEntry(CurrentTimeQuery newEntry)
        {
            var db = new ClockworkContext();

            // insert new entry to database
            db.CurrentTimeQueries.Add(newEntry);
            Console.WriteLine("{0} records(s) saved to database", db.SaveChanges());
        }
        public IActionResult GetAll()
        {
            ClockworkContext db = new ClockworkContext();
            var val             = new List <CurrentTimeQuery>();

            val.AddRange(db.CurrentTimeQueries.ToList());
            return(Ok(val));
        }
Beispiel #22
0
        public async Task <IActionResult> Get(string timezoneId, bool didUserRequest = false, int page = 1, int pageSize = 10, string sort = "desc")
        {
            PaginatedList <CurrentTimeQuery> currentTimeQueriesData;
            var currentTimeQueries = new List <CurrentTimeQuery>();

            TimeZoneInfo targetTimezone = TimeZoneInfo.FindSystemTimeZoneById(timezoneId ?? TimeZoneInfo.Local.Id);

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

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

            using (var db = new ClockworkContext())
            {
                if (didUserRequest)
                {
                    db.CurrentTimeQueries.Add(returnVal);
                    var count = db.SaveChanges();

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

                var tempData = db.CurrentTimeQueries.AsNoTracking();

                switch (sort)
                {
                case "desc":
                    tempData = tempData.OrderByDescending(r => r.CurrentTimeQueryId);
                    break;

                case "asc":
                    tempData = tempData.OrderBy(r => r.CurrentTimeQueryId);
                    break;

                default:
                    break;
                }

                currentTimeQueriesData = await PaginatedList <CurrentTimeQuery> .CreateAsync(tempData, page, pageSize);
            }

            return(Ok(new
            {
                timeRequested = returnVal,
                currentTimeQueries = currentTimeQueriesData,
                pageIndex = currentTimeQueriesData.PageIndex,
                totalPages = currentTimeQueriesData.TotalPages,
                hasNext = currentTimeQueriesData.HasNextPage,
                hasPrevious = currentTimeQueriesData.HasPreviousPage
            }));
        }
Beispiel #23
0
 public ActionResult Delete()
 {
     using (var db = new ClockworkContext())
     {
         db.CurrentTimeQueries.RemoveRange(db.CurrentTimeQueries);
         Console.WriteLine("Data Table Truncated");
         db.SaveChanges();
     }
     return(Ok());
 }
Beispiel #24
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            //Ensure that there is a database
            using (var context = new ClockworkContext())
            {
                context.Database.EnsureCreated();
            }

            services.AddMvc();
        }
        public IActionResult GetDateBase()
        {
            List <CurrentTimeQuery> result = new List <CurrentTimeQuery>();

            using (var db = new ClockworkContext())
            {
                result = db.CurrentTimeQueries.ToList();
            }
            return(Ok(result));
        }
        public List <CurrentTimeQuery> Read()
        {
            var currentTimeQueries = new List <CurrentTimeQuery>();

            using (var context = new ClockworkContext())
            {
                currentTimeQueries = context.CurrentTimeQueries.ToList();
            }

            return(currentTimeQueries);
        }
        public IActionResult Get()
        {
            var timeList = new List <CurrentTimeQuery>();

            using (var db = new ClockworkContext())
            {
                timeList = db.CurrentTimeQueries.ToList();
            }

            return(Ok(timeList));
        }
        public IActionResult Get(string timeZone)
        {
            //gets the current utc time
            DateTime utcTime = DateTime.UtcNow;

            //get current server time
            DateTime serverTime = DateTime.Now;

            //get the ip address of the user
            string ip = this.HttpContext.Connection.RemoteIpAddress.ToString();

            //set default timeZoneSelection to an empty string if they didn't select anything
            //aka selected '--'
            string timeZoneSelection = "";

            //timeZoneSelectionTime for displaying and adding to database
            string timeZoneSelectionTime = "";


            //if a timeZone has been selected, then the server time is used to calculate the
            //zoned date time of the selection
            if (timeZone != null && timeZone != "--")
            {
                //get the requested timeZone
                //DateTimeZone tzTime = DateTimeZoneProviders.Tzdb[timeZone];
                timeZoneSelection     = timeZone;
                timeZoneSelectionTime = CurrentTimeQuery
                                        .ConvertToDifferentTimeZoneFromUtc(CurrentTimeQuery.GetZoneId(timeZone)).ToShortTimeString();
            }

            var returnVal = new CurrentTimeQuery
            {
                UTCTime  = utcTime,
                ClientIp = ip,
                Time     = serverTime,
                TimeZoneSelectionTime = timeZoneSelectionTime,
                TimeZoneSelection     = timeZoneSelection
            };

            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));
        }
Beispiel #29
0
        public static IOrderedQueryable <CurrentTimeQuery> GetAllTimeRequests()
        {
            // get all entries
            var db = new ClockworkContext();
            IOrderedQueryable <CurrentTimeQuery> timeQueries =
                from query in db.CurrentTimeQueries
                orderby query.CurrentTimeQueryId
                select query;

            return(timeQueries);
        }
        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
            }));
        }