Esempio n. 1
0
        private void MockDuration(IClientSpan saveClientSpan, DateTime now, int delayStartMs, int durationMs)
        {
            saveClientSpan.StartUtc = now.AddMilliseconds(delayStartMs);

            foreach (var logItem in saveClientSpan.Logs)
            {
                logItem.Value.CreateAt = now.AddMilliseconds(delayStartMs);
            }
            saveClientSpan.FinishUtc = saveClientSpan.StartUtc.AddMilliseconds(durationMs);
        }
Esempio n. 2
0
        public static MessageResult ValidateSave(this IClientSpan clientSpan, bool validateFinish)
        {
            var result = MessageResult.FailResult(string.Empty);

            if (clientSpan == null)
            {
                result.Message = "Span不能空";
                return(result);
            }

            result.Data = clientSpan;

            var isBadLocateArgs = clientSpan.IsBadLocateArgs(ClientSpanLocateMode.ForCurrent);

            if (isBadLocateArgs)
            {
                result.Message = "Span的关键KEY不能空";
                return(result);
            }

            //if (string.IsNullOrWhiteSpace(clientSpan.OpName))
            //{
            //    return false;
            //}

            if (clientSpan.StartUtc == default(DateTime))
            {
                result.Message = "StartUtc必须赋值";
                return(result);
            }

            if (validateFinish && clientSpan.FinishUtc == null)
            {
                result.Message = "FinishUtc必须赋值";
                return(result);
            }

            if (clientSpan.FinishUtc == default(DateTime))
            {
                result.Message = "FinishUtc必须赋值";
                return(result);
            }

            result.Success = true;
            return(result);
        }
Esempio n. 3
0
 public static bool CanFinish(this IClientSpan clientSpan)
 {
     return(clientSpan.FinishUtc.HasValue);
 }