private TimeSpanWrapperClass GetTimeDiff(int dateTimeDiffTolerance) { DateTimeErrorWrapper dateTimeErrorWrapper = null; try { dateTimeErrorWrapper = _userDataMarshallerClient.GetCurrentServerTime(_systemPassPhrase); } catch (CommunicationException ex) { _logger.WriteError(ex); return(null); } if (dateTimeErrorWrapper.ErrorStatus == ErrorStatus.Failure) { var errorReporting = (IErrorReporting)dateTimeErrorWrapper; _logger.WriteError(errorReporting.ErrorCode, errorReporting.Message); return(null); } TimeSpan timeDiff = (dateTimeErrorWrapper.ReturnDateTime).Subtract(DateTime.Now); // if the time difference between the client and the server is less than // the acceptable date/time variance, leave unchanged. if (timeDiff < TimeSpan.FromMinutes(dateTimeDiffTolerance)) { return(new TimeSpanWrapperClass(new TimeSpan(0))); } return(new TimeSpanWrapperClass((dateTimeErrorWrapper.ReturnDateTime).Subtract(DateTime.Now))); }
/// <summary> /// Gets the Relay server's time /// </summary> /// <param name="systemPassPhrase">Pass phrase to authenticate across services</param> /// <returns>A LongErrorWrapper object with the Relay server's time in ticks or with error information</returns> public DateTimeErrorWrapper GetCurrentServerTime(string systemPassPhrase) { DateTimeErrorWrapper dateTimeErrorWrapper = new DateTimeErrorWrapper(); if (systemPassPhrase != _systemPassPhrase) { dateTimeErrorWrapper.ErrorCode = "ERR:001"; dateTimeErrorWrapper.Message = "Authentication failure"; dateTimeErrorWrapper.ErrorSeverity = ErrorSeverity.Retriable; dateTimeErrorWrapper.ErrorStatus = ErrorStatus.Failure; return(dateTimeErrorWrapper); } dateTimeErrorWrapper.ReturnDateTime = DateTime.Now; dateTimeErrorWrapper.ErrorStatus = ErrorStatus.Success; return(dateTimeErrorWrapper); }