private ITime DetermineFinalTime(ITime currentTime) { foreach (KeyValuePair <string, ExchangeItem> output in _outputs) { if (output.Value.Times != null && output.Value.Times.Length > 0) { double timeAsMJD = output.Value.Times[output.Value.Times.Length - 1]; currentTime = new DotNet.Bridge.Time(timeAsMJD); break; } } foreach (KeyValuePair <string, ExchangeItem> inout in _inout) { if (inout.Value.Times != null && inout.Value.Times.Length > 0) { double timeAsMJD = inout.Value.Times[inout.Value.Times.Length - 1]; currentTime = new DotNet.Bridge.Time(timeAsMJD); break; } } if (currentTime == null) { currentTime = TimeHorizon.BeginTime; } return(currentTime); }
private ITime DetermineCurrentTime(ITime currentTime) { /* In case the component implements some extensions, use them */ if (_openMIComponent is ITimeSpaceComponentExtensions) { ITimeSpaceComponentExtensions extendedComponent = (ITimeSpaceComponentExtensions)_openMIComponent; double now = extendedComponent.currentTime().StampAsModifiedJulianDay; return(new DotNet.Bridge.Time(now)); } /* We have to fall back on a proper time administration in the exhange items */ foreach (KeyValuePair <string, ExchangeItem> output in _outputs) { if (output.Value.Times != null && output.Value.Times.Length > 0) { double timeAsMJD = output.Value.Times[output.Value.Times.Length - 1]; currentTime = new DotNet.Bridge.Time(timeAsMJD); if (currentTime != null) { return(currentTime); } } } foreach (KeyValuePair <string, ExchangeItem> inout in _inout) { if (inout.Value.Times != null && inout.Value.Times.Length > 0) { double timeAsMJD = inout.Value.Times[inout.Value.Times.Length - 1]; currentTime = new DotNet.Bridge.Time(timeAsMJD); break; } break; } if (currentTime == null) { currentTime = TimeHorizon.BeginTime; } return(currentTime); // } }