using ServiceCenter.Logs;
using WCS.Core;
using LogInfo = ServiceCenter.Logs.LogInfo;
namespace WCS.WorkEngineering.Extensions
{
    public static class WorldExtension
    {
        /// 
        ///  记录日志
        ///  默认:低级别 已知 不上抛
        /// 
        /// 世界
        /// 消息
        public static void Log(this World source, string msg)
        {
            source.Log(new LogInfo { Level = LogLevelEnum.Low, Type = ErrorTypeEnum.Kown, LogUpLoad = LogUpLoadEnum.NotUpLoad, Message = msg });
        }
        /// 
        ///  记录日志
        ///  默认:已知
        ///  上抛根据日志级别决定:低级别不上抛,中高级别上抛WMS
        /// 
        /// 世界
        /// 消息
        /// 日志级别
        public static void Log(this World source, string msg, LogLevelEnum level)
        {
            LogUpLoadEnum logUpLoad = LogUpLoadEnum.NotUpLoad;
            switch (level)
            {
                case LogLevelEnum.Low:
                    logUpLoad = LogUpLoadEnum.NotUpLoad;
                    break;
                case LogLevelEnum.Mid:
                    logUpLoad = LogUpLoadEnum.UpLoadWMS;
                    break;
                case LogLevelEnum.High:
                    logUpLoad = LogUpLoadEnum.UpLoadWMS;
                    break;
                default:
                    break;
            }
            source.Log(new LogInfo { Level = level, Type = ErrorTypeEnum.Kown, LogUpLoad = logUpLoad, Message = msg });
        }
        /// 
        ///  记录日志
        ///  上抛根据日志级别决定:低级别不上抛,中高级别上抛WMS
        /// 
        /// 世界
        /// 消息
        /// 日志级别
        /// 日志类型
        public static void Log(this World source, string msg, LogLevelEnum level, ErrorTypeEnum errorType)
        {
            LogUpLoadEnum logUpLoad = LogUpLoadEnum.NotUpLoad;
            switch (level)
            {
                case LogLevelEnum.Low:
                    logUpLoad = LogUpLoadEnum.NotUpLoad;
                    break;
                case LogLevelEnum.Mid:
                    logUpLoad = LogUpLoadEnum.UpLoadWMS;
                    break;
                case LogLevelEnum.High:
                    logUpLoad = LogUpLoadEnum.UpLoadWMS;
                    break;
                default:
                    break;
            }
            source.Log(new LogInfo { Level = level, Type = errorType, LogUpLoad = logUpLoad, Message = msg });
        }
        /// 
        ///  记录日志
        /// 
        /// 世界
        /// 消息
        /// 日志级别
        /// 日志类型
        /// 日志上抛类型
        public static void Log(this World source, string msg, LogLevelEnum level, ErrorTypeEnum errorType, LogUpLoadEnum logUpLoad)
        {
            source.Log(new LogInfo { Level = level, Type = errorType, LogUpLoad = logUpLoad, Message = msg });
        }
    }
}