GetUnixTime() static private method

static private GetUnixTime ( ) : uint
return uint
        private async Task <uint> GetSteamTime()
        {
            if (SteamTimeDifference.HasValue && (DateTime.UtcNow.Subtract(LastSteamTimeCheck).TotalHours < SteamTimeTTL))
            {
                return((uint)(Utilities.GetUnixTime() + SteamTimeDifference.Value));
            }

            await TimeSemaphore.WaitAsync().ConfigureAwait(false);

            try {
                if (SteamTimeDifference.HasValue && (DateTime.UtcNow.Subtract(LastSteamTimeCheck).TotalHours < SteamTimeTTL))
                {
                    return((uint)(Utilities.GetUnixTime() + SteamTimeDifference.Value));
                }

                uint serverTime = await Bot.ArchiWebHandler.GetServerTime().ConfigureAwait(false);

                if (serverTime == 0)
                {
                    return(Utilities.GetUnixTime());
                }

                SteamTimeDifference = (int)(serverTime - Utilities.GetUnixTime());
                LastSteamTimeCheck  = DateTime.UtcNow;

                return((uint)(Utilities.GetUnixTime() + SteamTimeDifference.Value));
            } finally {
                TimeSemaphore.Release();
            }
        }
Example #2
0
        internal async Task <uint> GetSteamTime()
        {
            if (SteamTimeDifference != 0)
            {
                return((uint)(Utilities.GetUnixTime() + SteamTimeDifference));
            }

            await TimeSemaphore.WaitAsync().ConfigureAwait(false);

            if (SteamTimeDifference == 0)
            {
                uint serverTime = Bot.ArchiWebHandler.GetServerTime();
                if (serverTime != 0)
                {
                    SteamTimeDifference = (short)(serverTime - Utilities.GetUnixTime());
                }
            }

            TimeSemaphore.Release();
            return((uint)(Utilities.GetUnixTime() + SteamTimeDifference));
        }
        private async Task <uint> GetSteamTime()
        {
            await TimeSemaphore.WaitAsync().ConfigureAwait(false);

            try {
                if (SteamTimeDifference.HasValue)
                {
                    return((uint)(Utilities.GetUnixTime() + SteamTimeDifference.Value));
                }

                uint serverTime = Bot.ArchiWebHandler.GetServerTime();
                if (serverTime == 0)
                {
                    return(Utilities.GetUnixTime());
                }

                SteamTimeDifference = (int)(serverTime - Utilities.GetUnixTime());
                return((uint)(Utilities.GetUnixTime() + SteamTimeDifference.Value));
            } finally {
                TimeSemaphore.Release();
            }
        }
        private async Task <uint> GetSteamTime()
        {
            if (SteamTimeDifference.HasValue)
            {
                return((uint)(Utilities.GetUnixTime() + SteamTimeDifference.GetValueOrDefault()));
            }

            await TimeSemaphore.WaitAsync().ConfigureAwait(false);

            try {
                if (!SteamTimeDifference.HasValue)
                {
                    uint serverTime = Bot.ArchiWebHandler.GetServerTime();
                    if (serverTime != 0)
                    {
                        SteamTimeDifference = (short)(serverTime - Utilities.GetUnixTime());
                    }
                }
            } finally {
                TimeSemaphore.Release();
            }

            return((uint)(Utilities.GetUnixTime() + SteamTimeDifference.GetValueOrDefault()));
        }