public override int CompareTo(LogItemViewModelBase other) { // Only stay here if both objects are a FieldLog item FieldLogItemViewModel flOther = other as FieldLogItemViewModel; if (flOther == null) { return(base.CompareTo(other)); } // First compare the items by time (close is equal) const long closeTicks = 10000000; // 1 second long timeDiff = this.Time.Ticks - other.Time.Ticks; if (timeDiff > closeTicks) { return(1); } if (timeDiff < -closeTicks) { return(-1); } // If the time is close and the session is equal, consider the event counter value and handle overflows if (SessionId == flOther.SessionId) { const int range = 10000; if (EventCounter > int.MaxValue - range && other.EventCounter < int.MinValue + range) { // Overflow, other is newer return(-1); } if (EventCounter < int.MinValue + range && other.EventCounter > int.MaxValue - range) { // Overflow, other is older return(1); } return(EventCounter.CompareTo(other.EventCounter)); } // Otherwise stay with the time return(this.Time.CompareTo(other.Time)); }
public FieldLogWebRequestDataViewModel(FieldLogWebRequestData webRequestData, FieldLogItemViewModel itemVM) { this.WebRequestData = webRequestData; this.ItemVM = itemVM; }
public FieldLogEnvironmentViewModel(FieldLogEventEnvironment environment, FieldLogItemViewModel itemVM) { this.Environment = environment; this.ItemVM = itemVM; }