예제 #1
0
 public IApiResult AuditPass(IdsArguent arg)
 {
     OnAuditPass();
     return(IsFailed
             ? ApiResultHelper.State(GlobalContext.Current.Status.LastState, GlobalContext.Current.Status.LastMessage)
             : ApiResultHelper.Succees());
 }
예제 #2
0
        public async Task <IApiResult> Argument(Argument argument)
        {
            logger.LogInformation($"Call {nameof(Argument)}({argument.Value})");
            await Task.Delay(100);

            return(ApiResultHelper.Succees());
        }
예제 #3
0
        public Task <IApiResult <string> > TaskTest()
        {
            logger.LogInformation($"Call {nameof(TaskTest)}");
            var res = ApiResultHelper.Succees(nameof(TaskTest));

            return(Task.FromResult(res));
        }
예제 #4
0
        public async Task <IApiResult> Async()
        {
            await Task.Yield();

            logger.LogInformation($"Call {nameof(Async)}");
            return(ApiResultHelper.Succees(nameof(Async)));
        }
예제 #5
0
        public async Task <IApiResult> CustomSerialize(Argument argument)
        {
            logger.Information(() => $"Call {nameof(Argument)}({argument?.Value})");
            await Task.Delay(100);

            return(ApiResultHelper.Succees());
        }
예제 #6
0
 public IApiResult TaskTest()
 {
     LogRecorder.Trace(Task.CurrentId?.ToString());
     Task.Delay(100);
     LogRecorder.Trace(Task.CurrentId?.ToString());
     LogRecorder.Trace("VoidAsync");
     return(ApiResultHelper.Succees());
 }
예제 #7
0
        public async Task <IApiResult> Argument2(Argument argument
                                                 , [ArgumentSerializeType(SerializeType.Json)] Argument arg2)
        {
            logger.LogInformation($"Call {nameof(Argument)}({argument.Value})");
            await Task.Delay(100);

            return(ApiResultHelper.Succees());
        }
예제 #8
0
        public IApiResult Validate(IdsArguent arg)
        {
            if (!RequestArgumentConvert.TryGetIDs("selects", Convert, out List <TPrimaryKey> ids))
            {
                return(ApiResultHelper.Helper.ArgumentError);
            }

            DoValidate(ids);
            return(IsFailed
                    ? ApiResultHelper.State(GlobalContext.Current.Status.LastState, GlobalContext.Current.Status.LastMessage)
                    : ApiResultHelper.Succees());
        }
예제 #9
0
 public IApiResult Validate(TestArgument argument)
 {
     return(ApiResultHelper.Succees(argument.Value));
 }
예제 #10
0
 public IApiResult Result()
 {
     LogRecorder.Trace("Result");
     return(ApiResultHelper.Succees());
 }
예제 #11
0
 public IApiResult <string> Xml(Argument argument)
 {
     return(ApiResultHelper.Succees(argument.Value));
 }
예제 #12
0
 public IApiResult <SerializeType> MulitArg(string a, int b, decimal c, SerializeType d)//
 {
     logger.LogInformation($"Call {nameof(MulitArg)},Argument : a {a}, b {b},c {c},d {d}");
     return(ApiResultHelper.Succees(d));
 }
예제 #13
0
 public IApiResult <string> FromServices([FromServices] ISerializeProxy a)
 {
     logger.LogInformation($"Call {nameof(FromServices)},Argument : {a.ToJson()}");
     return(ApiResultHelper.Succees(a.ToJson()));
 }
예제 #14
0
 public IApiResult <string> FromConfig([FromConfig("MessageMVC:Option")] ZeroAppConfig a)
 {
     logger.LogInformation($"Call {nameof(FromConfig)},Argument : {a.ToJson()}");
     return(ApiResultHelper.Succees(a.ToJson()));
 }
예제 #15
0
 public IApiResult Result()
 {
     System.Console.WriteLine(GetType().FullName);
     return(ApiResultHelper.Succees());
 }
예제 #16
0
 public IApiResult <string> Test2()
 {
     return(ApiResultHelper.Succees("Hello2"));
 }
예제 #17
0
 public IApiResult Argument(Argument argument)
 {
     logger.LogInformation($"Call {nameof(Argument)}({argument.Value})");
     return(ApiResultHelper.Succees());
 }
예제 #18
0
 public IApiResult <string> Exception()
 {
     return(ApiResultHelper.Succees("测试接口"));
 }
예제 #19
0
        /// <summary>
        /// 准备
        /// </summary>
        /// <param name="service">当前服务</param>
        /// <param name="message">当前消息</param>
        /// <param name="tag">扩展信息</param>
        /// <returns></returns>
        async Task <bool> IMessageMiddleware.Prepare(IService service, IInlineMessage message, object tag)
        {
            if (message.Service != "_health_")
            {
                return(true);
            }
            var col = Collection;

            Collection = new ApiCollection
            {
                Start = DateTime.Now,
                End   = DateTime.Now
            };
            var checkers = DependencyHelper.GetServices <IHealthCheck>();
            var res      = new NameValue <Dictionary <string, HealthInfo> >
            {
                Name  = ZeroAppOption.Instance.HostName,
                Value = new Dictionary <string, HealthInfo>(StringComparer.OrdinalIgnoreCase)
            };

            res.Value.Add("ApiCollection", new HealthInfo
            {
                Value   = (col.End - col.Start).TotalSeconds,
                Details = col.ToJson()
            });
            foreach (var checker in checkers)
            {
                if (res.Value.ContainsKey(checker.Name))
                {
                    continue;
                }
                DateTime start = DateTime.Now;
                try
                {
                    var info = await checker.Check();

                    info.Value = (DateTime.Now - start).TotalMilliseconds;
                    if (info.Value < 10)
                    {
                        info.Level = 5;
                    }
                    else if (info.Value < 100)
                    {
                        info.Level = 4;
                    }
                    else if (info.Value < 500)
                    {
                        info.Level = 3;
                    }
                    else if (info.Value < 3000)
                    {
                        info.Level = 2;
                    }
                    else
                    {
                        info.Level = 1;
                    }
                    res.Value.Add(checker.Name, info);
                }
                catch (Exception ex)
                {
                    res.Value.Add(checker.Name, new HealthInfo
                    {
                        Level    = -1,
                        ItemName = checker.Name,
                        Details  = ex.Message
                    });
                }
            }
            message.RealState  = MessageState.Success;
            message.ResultData = ApiResultHelper.Succees(res);
            return(false);
        }