/// <summary> /// Проверка на равенство /// </summary> /// <param name="other"></param> /// <returns></returns> public bool Equals(TraceId other) { if (other == null) { return(false); } return(other.Id == Id && other.Name == Name && other.Timestamp == Timestamp); }
/// <summary> /// Создание события /// </summary> /// <param name="id">идентификатор трассировки</param> /// <param name="name">имя события</param> /// <returns></returns> public static TraceEvent Create( TraceId id , string name) { var @event = new TraceEvent() { BeginTime = (DateTime.UtcNow - id.Timestamp), Name = name, }; return(@event); }
/// <summary> /// Получить дату и время начала события /// </summary> /// <param name="id"></param> /// <returns></returns> public DateTime GetBeginDateTime(TraceId id) { return((id.Timestamp + BeginTime).ToLocalTime()); }
/// <summary> /// Установить время завершения события /// </summary> /// <param name="id">идентификатор трассировки</param> internal void SetEnd(TraceId id) { _end = (int)Math.Ceiling((DateTime.UtcNow - id.Timestamp).TotalMilliseconds); }