public DateTime GetCurrentUtcDate()
{
if (!TimeExpired()) return DateTime.UtcNow.Add(Offset);
lock (_getTime)
{
if (!TimeExpired())
return DateTime.UtcNow.Add(Offset);
var time = GetTime();
var localTime = DateTime.UtcNow;
Offset = time - localTime;
ServerOffsetObtained = localTime;
Log.DebugFormat("[{0}] server difference is {1} MS", Name, Offset.TotalMilliseconds);
}
return DateTime.UtcNow.Add(Offset);
}