Exemplo n.º 1
0
 internal void TestApi(object arg)
 {
     try
     {
         SelecTestItem.RequestId = RandomOperate.Generate(8);
         GlobalContext.SetRequestContext(ZeroApplication.Config.ServiceKey, SelecTestItem.RequestId);
         User.ContextJson = JsonConvert.SerializeObject(GlobalContext.Current, Formatting.Indented);
         var client = new ApiClient
         {
             Station  = SelecTestItem.Station,
             Commmand = SelecTestItem.Api,
             Argument = SelecTestItem.Arguments
         };
         client.CallCommand();
         SelecTestItem.GlobalId = client.GlobalId;
         var result = JsonConvert.DeserializeObject <ApiResult>(client.Result);
         Tree.SelectItem.StatusIcon = result?.Success ?? false
             ? Application.Current.Resources["async_Succeed"] as BitmapImage
             : Application.Current.Resources["async_Faulted"] as BitmapImage;
         var obj = JsonConvert.DeserializeObject(client.Result);
         SelecTestItem.ResultJson = JsonConvert.SerializeObject(obj, Formatting.Indented);
         SaveApiScript();
     }
     catch (Exception ex)
     {
         Trace.WriteLine(ex);
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// 格式化身份名称
        /// </summary>
        /// <param name="isService"></param>
        /// <param name="ranges"></param>
        /// <returns></returns>
        public static string CreateRealName(bool isService, params string[] ranges)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append(UseIpc ? '-' : '+');
            sb.Append(isService ? "<" : ">");
            //sb.Append(ZeroApplication.Config.ServiceName);
            //sb.Append("-");
            sb.Append(ZeroApplication.Config.ShortName);
            if (ZeroApplication.Config.ServiceKey != "*")
            {
                sb.Append("-");
                sb.Append(ZeroApplication.Config.ServiceKey);
            }
            foreach (var range in ranges)
            {
                if (range == null)
                {
                    continue;
                }
                sb.Append("-");
                sb.Append(range);
            }
            sb.Append("-");
            sb.Append(RandomOperate.Generate(4));
            return(sb.ToString());
        }
Exemplo n.º 3
0
        /// <summary>
        /// 初始化,必须先调用
        /// </summary>
        public static void InitializeBase(bool bear)
        {
            if (IsInitialize)
            {
                return;
            }

            IocHelper.Update();
            IocHelper.AddScoped <GlobalContext, BusinessContext>();
            IocHelper.AddSingleton <IZeroPublisher, ZeroNetBridge>();
            IocHelper.AddSingleton <IGlobalContext, BusinessContext>(p => BusinessContext.Context);
            IocHelper.Update();

            Environment.CurrentDirectory = ConfigurationManager.BasePath = HttpContext.Current.Server.MapPath("~");

            LogRecorder.Initialize();
            LogRecorder.SystemLog("启动");
            LogRecorder.GetRequestIdFunc = () => RandomOperate.Generate(8);
            GlobalConfiguration.Configuration.MapHttpAttributeRoutes(new CustomDirectRouteProvider());
            HttpHandler.Handlers.Add(new CorsHandler());
            HttpHandler.Handlers.Add(new HttpIoLogHandler());
            if (bear)
            {
                HttpHandler.Handlers.Add(new BearerHandler());
            }
            IsInitialize = true;
        }
Exemplo n.º 4
0
        private void btnGetEmailCode_Click(object sender, EventArgs e)
        {
            //实例化一个发送邮件类。
            MailMessage mailMessage = new MailMessage();

            //发件人邮箱地址。
            mailMessage.From = new MailAddress("*****@*****.**");
            //收件人邮箱地址。
            mailMessage.To.Add(new MailAddress("*****@*****.**"));
            //邮件标题。
            mailMessage.Subject = "这是你的验证码";
            //随机验证码
            RandomOperate valCode          = new RandomOperate();
            string        verificationcode = valCode.GenerateCheckCode(4);

            //邮件内容。
            mailMessage.Body = "你的验证码是" + verificationcode;
            //实例化一个SmtpClient类。
            SmtpClient client = new SmtpClient();

            //在这里我使用的是qq邮箱,所以是smtp.qq.com,如果你使用的是126邮箱,那么就是smtp.126.com。
            client.Host = "smtp.qq.com";
            //使用安全加密连接。
            client.EnableSsl = true;
            //不和请求一块发送。
            client.UseDefaultCredentials = false;
            //验证发件人身份(发件人的邮箱,邮箱里的生成授权码);
            client.Credentials = new NetworkCredential("912872729", "qxvqjuyizimwbejd");
            //发送
            client.Send(mailMessage);
            MessageBox.Show("发送成功!", "提示");
            code = verificationcode;
        }
Exemplo n.º 5
0
        /// <summary>
        ///     请求命令
        /// </summary>
        /// <returns></returns>
        public static object Call(string command)
        {
            var    ev     = new ManualResetEvent(false);
            object result = null;
            var    cmd    = new CommandArgument
            {
                userToken   = ApiContext.MyServiceKey,
                commandName = command,
                requestId   = RandomOperate.Generate(12),
                cmdId       = RpcEnvironment.NET_COMMAND_CALL,
                Data        = new StringArgumentData(),
                OnEnd       = res =>
                {
                    var data = (StringArgumentData)res.Data;
                    result = data?.Argument;
                    ev.Set();
                }
            };

            cmd.RequestStateChanged += OnRequestStateChanged;
            Message = "Start";
            RpcCore.Singleton.Request.request_net_cmmmand(cmd);
            ev.WaitOne();
            Message = "End";
            return(result);
        }
Exemplo n.º 6
0
 /// <summary>
 /// 添加新的教师
 /// </summary>
 /// <returns></returns>
 public static string AddTeach(Teachers teacher)
 {
     if (string.IsNullOrEmpty(teacher.ID))
     {
         RandomOperate operate = new RandomOperate();
         teacher.ID = operate.CreateMD5Hash(operate.GenerateCheckCode(30));
     }
     return(MsSqlMapperHepler.Insert <Teachers>(teacher, DBKeys.PRX));
 }
Exemplo n.º 7
0
        /// <summary>
        /// 新增教师
        /// </summary>
        /// <returns></returns>
        public JsonResult AddTeach()
        {
            AjaxStatusModel ajax = new AjaxStatusModel(); //功能操作类的返回类型都是AjaxStatusModel,数据放到AjaxStatusModel.data中,前台获取json后加载

            ajax.status = EnumAjaxStatus.Error;           //默认失败
            ajax.msg    = "新增失败!";                        //前台获取,用于显示提示信息
            var data = Request["data"];                   //获取前台传递的数据,主要序列化

            if (string.IsNullOrEmpty(data))
            {
                return(Json(ajax));
            }

            Teachers   teacher = (Teachers)(JsonConvert.DeserializeObject(data.ToString(), typeof(Teachers)));
            SYSAccount sys     = (SYSAccount)(JsonConvert.DeserializeObject(data.ToString(), typeof(SYSAccount)));

            if (string.IsNullOrEmpty(teacher.MobilePhone))
            {
                ajax.msg = "请输入教师手机号!";
                return(Json(ajax));
            }
            TeacherSearchModel search = new TeacherSearchModel();

            search.MobilePhone = teacher.MobilePhone;
            int teas = TeacherData.GetTeachersList(search).Count();

            if (teas > 0)//手机号重复了
            {
                ajax.msg = "手机号重复!";
                return(Json(ajax));
            }
            RandomOperate operate = new RandomOperate();

            teacher.CreateTime = DateTime.Now;
            teacher.CreatorId  = UserSession.userid;
            teacher.ID         = operate.GenerateCheckCode(36);


            teacher.BindAccountID = teacher.MobilePhone;
            sys.ACC_Account       = teacher.MobilePhone;//用手机号作为登陆账号
            sys.ACC_CreatedBy     = UserSession.userid;
            sys.ACC_CreatedOn     = DateTime.Now;
            sys.ACC_Password      = operate.CreateMD5Hash("123");
            sys.ACC_ComCode       = teacher.ComCode;
            if (!string.IsNullOrEmpty(TeacherData.AddTeachers(teacher, sys)))//注意时间类型,而且需要在前台把所有的值
            {
                ajax.msg    = "新增成功!";
                ajax.status = EnumAjaxStatus.Success;
            }
            return(Json(ajax));
        }
Exemplo n.º 8
0
        /// <summary>
        /// 心跳
        /// </summary>
        /// <returns></returns>
        public static void ApiTest()
        {
            var request = new RequestSocket();
            var config  = StationProgram.GetConfig(station);

            try
            {
                int id = 1;
                request.Options.Identity          = RandomOperate.Generate(8).ToAsciiBytes();
                request.Options.ReconnectInterval = new TimeSpan(0, 0, 0, 0, 200);
                request.Connect(config.OutAddress);
                //for (int i = 0; i < 1024; i++)//
                {
                    Console.WriteLine("request...");
                    DateTime s = DateTime.Now;
                    request.SendFrame(api, true);
                    request.SendFrame($"{++id}", true);
                    request.SendFrame("{}", true);
                    if (!request.TrySendFrame(new TimeSpan(0, 0, 0, 3), argument))
                    {
                        Console.WriteLine("*  3");
                        return;
                    }
                    bool more = true;
                    //收完消息
                    while (more)
                    {
                        string result;
                        if (request.TryReceiveFrameString(new TimeSpan(0, 0, 0, 500), out result, out more))
                        {
                            Console.WriteLine(result);
                            continue;
                        }
                        Console.WriteLine("*  4");
                        return;
                    }
                    time += (DateTime.Now - s).TotalMilliseconds;
                    cnt++;
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                request.Close();
                //tasks.Remove(Task.CurrentId.Value);
            }
        }
Exemplo n.º 9
0
        /// <summary>
        ///     初始化基本上下文
        /// </summary>
        private bool InitializeContext()
        {
            ApiContext.Current.Request.Bear         = Data.Bearer;
            ApiContext.Current.Request.RequestId    = RandomOperate.Generate(8);
            ApiContext.Current.Request.Ip           = HttpContext.Connection.RemoteIpAddress.ToString();
            ApiContext.Current.Request.Port         = HttpContext.Connection.RemotePort.ToString();
            ApiContext.Current.Request.ServiceKey   = ApiContext.MyServiceKey;
            ApiContext.Current.Request.ArgumentType = ArgumentType.Json;
            ApiContext.Current.Request.UserAgent    = Request.Headers["User-Agent"];

            if (!AppConfig.Config.RouteMap.TryGetValue(Data.HostName, out Data.RouteHost))
            {
                Data.RouteHost = HostConfig.DefaultHost;
            }
            return(true);
        }
Exemplo n.º 10
0
        /// <summary>
        ///     广播
        /// </summary>
        /// <returns></returns>
        public static CommandArgument Publish <T>(string command, T argument)
        {
            var cmd = new CommandArgument
            {
                userToken   = ApiContext.MyServiceKey,
                commandName = command,
                requestId   = RandomOperate.Generate(12),
                cmdId       = RpcEnvironment.NET_COMMAND_BUSINESS_NOTIFY,
                Data        = new StringArgumentData
                {
                    Argument = JsonConvert.SerializeObject(argument)
                }
            };

            cmd.RequestStateChanged += OnRequestStateChanged;
            RpcCore.Singleton.Request.request_net_cmmmand(cmd, false);
            return(cmd);
        }
Exemplo n.º 11
0
        /// <summary>
        /// 发送广播
        /// </summary>
        /// <param name="station"></param>
        /// <param name="title"></param>
        /// <param name="sub"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        private static bool DoPublish(string station, string title, string sub, string value)
        {
            var socket = ZeroConnectionPool.GetSocket(station, RandomOperate.Generate(8));

            if (socket.Socket == null)
            {
                return(false);
            }
            using (socket)
            {
                return(socket.Socket.Publish(new PublishItem
                {
                    Station = station,
                    Title = title,
                    SubTitle = sub,
                    RequestId = GlobalContext.RequestInfo.RequestId,
                    Content = value ?? "{}"
                }));
            }
        }
Exemplo n.º 12
0
        /// <summary>
        ///     检查上下文,如果信息为空,加入系统匿名用户上下文
        /// </summary>
        public static void TryCheckByAnymouse()
        {
            if (Current._requestContext == null)
            {
                Current._requestContext = new CallContext
                {
                    RequestId   = RandomOperate.Generate(8),
                    Bear        = "<error>",
                    RequestType = RequestType.None
                }
            }
            ;
            if (Current._user == null)
            {
                Current._user = LoginUserInfo.CreateAnymouse(Current._requestContext.Bear, "<error>", "<error>");
            }
        }

        #endregion
    }
Exemplo n.º 13
0
        /// <summary>
        ///     准备
        /// </summary>
        /// <param name="context"></param>
        public void Prepare(HttpContext context)
        {
            var request = context.Request;

            Uri = request.GetUri();
            string userAgent = null;

            foreach (var head in request.Headers)
            {
                var key = head.Key.ToUpper();
                var vl  = head.Value.ToList();
                Headers.Add(key, vl);
                switch (key)
                {
                case "AUTHORIZATION":
                    Token = vl.LinkToString();
                    break;

                case "USER-AGENT":
                    userAgent = head.Value.LinkToString("|");
                    break;
                }
            }
            HttpMethod = request.Method.ToUpper();


            GlobalContext.SetRequestContext(new RequestInfo
            {
                RequestId    = RandomOperate.Generate(8),
                UserAgent    = userAgent,
                Token        = Token,
                RequestType  = RequestType.Http,
                ArgumentType = ArgumentType.Json,
                Ip           = context.Connection.RemoteIpAddress?.ToString(),
                Port         = context.Connection.RemotePort.ToString(),
            });
        }
Exemplo n.º 14
0
        /// <summary>
        /// 新增学生表
        /// </summary>
        /// <returns></returns>
        public JsonResult AddStudent()
        {
            AjaxStatusModel ajax = new AjaxStatusModel(); //功能操作类的返回类型都是AjaxStatusModel,数据放到AjaxStatusModel.data中,前台获取json后加载

            ajax.status = EnumAjaxStatus.Error;           //默认失败
            ajax.msg    = "新增失败!";                        //前台获取,用于显示提示信息
            var data = Request["data"];                   //获取前台传递的数据,主要序列化

            if (string.IsNullOrEmpty(data))
            {
                return(Json(ajax));
            }

            Students Stu = (Students)(JsonConvert.DeserializeObject(data.ToString(), typeof(Students)));

            //判断手机号码+学员号是否唯一


            string studid = StudentData.BindPhone_insert(Stu.BindPhone, Stu.Name);
            string apid   = Request["apid"];       //预约号

            if (!string.IsNullOrEmpty(apid))       //如果是从预约/市场资源模块进来的,先判断是否存在学员,如果存在就绑定,如果不存在就新增记录
            {
                if (!string.IsNullOrEmpty(studid)) //之前已经存在学员,则做绑定操作
                {
                    StudentData.BindStudentforAP(studid, apid);
                    ajax.status = EnumAjaxStatus.Success;
                    ajax.msg    = "已成功绑定到学员!";
                    return(Json(ajax));
                }
            }
            if (!string.IsNullOrEmpty(studid))
            {
                ajax.status = EnumAjaxStatus.Success;
                ajax.msg    = "手机号码已存在,不能重复使用!";
                return(Json(ajax));
            }
            Stu.StateID    = 1;//新增学员状态默认是未读。
            Stu.CreateTime = DateTime.Now;
            Stu.CreatorId  = UserSession.userid;



            var year  = DateTime.Now.Year.ToString().Substring(2, 2); //获取年份
            var month = DateTime.Now.Month.ToString();                //获取月份

            if (month.ToString().Length == 1)
            {
                month = "0" + month.ToString();
            }
            var Mosaic = year + month;



            Students query = StudentData.GetStudentsOne(Mosaic);//获取创建时间最新的一条数据
            string   MAX_ID;

            if (query != null)
            {
                MAX_ID = query.ID;
            }
            else
            {
                MAX_ID = null;
            }

            if (!string.IsNullOrEmpty(MAX_ID))
            {
                Stu.ID = Mosaic + (Convert.ToInt32(MAX_ID.Substring(4)) + 1).ToString().PadLeft(2, '0');
            }
            else
            {
                Stu.ID = Mosaic + "01";
            }
            SYSAccount     sys     = new SYSAccount();     //用户信息
            SYSAccountRole sysR    = new SYSAccountRole(); //用户角色
            RandomOperate  operate = new RandomOperate();

            //添加默认权限
            Stu.BindAccount   = Stu.ID;//方便登陆
            sys.ACC_Account   = Stu.BindAccount;
            sys.ACC_CreatedBy = UserSession.userid;
            sys.ACC_CreatedOn = DateTime.Now;
            sys.ACC_Password  = operate.CreateMD5Hash("123");


            //添加SYS_AccountRole表数据

            // sysR.AR_AccountId = StudentData.Max_ACC_Id();
            sysR.AR_SystemRoleId = 9;


            string stuid = StudentData.AddStudent(Stu, sys, sysR);

            if (stuid != "")//注意时间类型,而且需要在前台把所有的值
            {
                ajax.msg = "新增成功!";
                if (!string.IsNullOrEmpty(apid))//如果是预约单过来的,重新绑定一下
                {
                    StudentData.BindStudentforAP(stuid, apid);
                    ajax.msg = "绑定成功!";
                }
                vw_Appointment vw_Appointment = StudentData.Getvw_AppointmentList(apid); //查询预约单相应的信息
                ajax.data   = vw_Appointment;                                            //让前台的直报功能能获取到值
                ajax.status = EnumAjaxStatus.Success;
            }
            return(Json(ajax));
        }
Exemplo n.º 15
0
        /// <summary>
        ///     配置校验
        /// </summary>
        private static void CheckConfig()
        {
            var    curPath = ConfigurationManager.Root.GetValue("contentRoot", Environment.CurrentDirectory);
            string rootPath;

            if (ConfigurationManager.Root["ASPNETCORE_ENVIRONMENT_"] == "Development")
            {
                ZeroTrace.SystemLog("Option", "Development");
                AppName  = ConfigurationManager.Root["AppName"];
                rootPath = curPath;
            }
            else
            {
                ZeroTrace.SystemLog("Option", RuntimeInformation.IsOSPlatform(OSPlatform.Linux) ? "Linux" : "Windows");
                rootPath = Path.GetDirectoryName(curPath);
                AppName  = Path.GetFileName(curPath);
                // ReSharper disable once AssignNullToNotNullAttribute
                var file = Path.Combine(rootPath, "config", "zero.json");
                if (File.Exists(file))
                {
                    ConfigurationManager.Load(file);
                }
                file = Path.Combine(rootPath, "config", $"{AppName}.json");
                if (File.Exists(file))
                {
                    ConfigurationManager.Load(file);
                }
                var name = ConfigurationManager.Root["AppName"];
                if (name == null)
                {
                    ConfigurationManager.Root["AppName"] = AppName;
                }
                else
                {
                    AppName = name;
                }
            }

            ConfigurationManager.Root["rootPath"] = rootPath;

            var sec = ConfigurationManager.Get("Zero");

            if (sec == null)
            {
                throw new Exception("无法找到主配置节点,路径为Zero,在appsettings.json中设置");
            }
            var global = sec.Child <ZeroAppConfig>("Global");

            if (global == null)
            {
                throw new Exception("无法找到主配置节点,路径为Zero.Global,在appsettings.json中设置");
            }
            Config = string.IsNullOrWhiteSpace(AppName)
                ? sec.Child <ZeroAppConfig>("Station")
                : sec.Child <ZeroAppConfig>(AppName) ?? sec.Child <ZeroAppConfig>("Station");


            if (Config == null)
            {
                throw new Exception($"无法找到主配置节点,路径为Zero.{AppName}或Zero.Station,在appsettings.json中设置");
            }
            Config.BinPath  = curPath;
            Config.RootPath = rootPath;

            var socketOption = sec.Child <SocketOption>("socketOption");

            if (socketOption != null)
            {
                ZSocket.Option = socketOption;
            }

            if (string.IsNullOrWhiteSpace(AppName))
            {
                ConfigurationManager.Root["AppName"] = AppName = Config.StationName;
            }

            Config.IsLinux = RuntimeInformation.IsOSPlatform(OSPlatform.Linux);

            global.LogFolder    = string.IsNullOrWhiteSpace(global.LogFolder) ? IOHelper.CheckPath(rootPath, "logs") : global.LogFolder.Trim();
            global.DataFolder   = string.IsNullOrWhiteSpace(global.DataFolder) ? IOHelper.CheckPath(rootPath, "datas") : global.DataFolder.Trim();
            global.ServiceName  = string.IsNullOrWhiteSpace(global.ServiceName) ? Dns.GetHostName() : global.ServiceName.Trim();
            global.ServiceKey   = string.IsNullOrWhiteSpace(global.ServiceKey) ? RandomOperate.Generate(8) : global.ServiceKey.Trim();
            global.ConfigFolder = string.IsNullOrWhiteSpace(global.ConfigFolder) ? IOHelper.CheckPath(rootPath, "config") : global.ConfigFolder.Trim();

            global.ZeroAddress = string.IsNullOrWhiteSpace(global.ZeroAddress) ? "127.0.0.1" : global.ZeroAddress.Trim();
            if (global.ZeroManagePort <= 1024 || Config.ZeroManagePort >= 65000)
            {
                global.ZeroManagePort = 8000;
            }
            if (global.ZeroMonitorPort <= 1024 || Config.ZeroMonitorPort >= 65000)
            {
                global.ZeroMonitorPort = 8001;
            }


            if (global.StationIsolate || Config.StationIsolate)
            {
                Config.ServiceName = string.IsNullOrWhiteSpace(Config.ServiceName) ? global.ServiceName : Config.ServiceName.Trim();
                Config.ServiceKey  = string.IsNullOrWhiteSpace(Config.ServiceKey) ? global.ServiceKey : Config.ServiceKey.Trim();
                Config.ZeroAddress = string.IsNullOrWhiteSpace(Config.ZeroAddress) ? global.ZeroAddress : Config.ZeroAddress.Trim();
                if (Config.ZeroManagePort <= 1024 || Config.ZeroManagePort >= 65000)
                {
                    Config.ZeroManagePort = global.ZeroManagePort;
                }
                if (Config.ZeroMonitorPort <= 1024 || Config.ZeroMonitorPort >= 65000)
                {
                    Config.ZeroMonitorPort = global.ZeroMonitorPort;
                }

                Config.DataFolder   = string.IsNullOrWhiteSpace(Config.DataFolder) ? global.DataFolder : IOHelper.CheckPath(global.DataFolder, AppName, "datas");
                Config.LogFolder    = string.IsNullOrWhiteSpace(Config.LogFolder) ? global.LogFolder : IOHelper.CheckPath(global.LogFolder, AppName, "logs");
                Config.ConfigFolder = string.IsNullOrWhiteSpace(Config.ConfigFolder) ? global.ConfigFolder : IOHelper.CheckPath(rootPath, AppName, "config");
            }
            else
            {
                Config.ServiceName     = global.ServiceName;
                Config.ServiceKey      = global.ServiceKey;
                Config.ZeroAddress     = global.ZeroAddress;
                Config.ZeroManagePort  = global.ZeroManagePort;
                Config.ZeroMonitorPort = global.ZeroMonitorPort;

                Config.DataFolder   = global.DataFolder;
                Config.LogFolder    = global.LogFolder;
                Config.ConfigFolder = global.ConfigFolder;
            }
            TxtRecorder.LogPath = Config.LogFolder;
            ConfigurationManager.Get("LogRecorder")["txtPath"] = Config.LogFolder;

            Config.ZeroManageAddress  = ZeroIdentityHelper.GetRequestAddress("SystemManage", Config.ZeroManagePort);
            Config.ZeroMonitorAddress = ZeroIdentityHelper.GetWorkerAddress("SystemMonitor", Config.ZeroMonitorPort);
            Config.LocalIpAddress     = GetHostIps();
            Config.ShortName          = string.IsNullOrWhiteSpace(Config.ShortName) ? Config.StationName : Config.ShortName.Trim();
            Config.RealName           = ZeroIdentityHelper.CreateRealName(false);
            Config.Identity           = Config.RealName.ToAsciiBytes();
            //模式选择

            if (Config.SpeedLimitModel < SpeedLimitType.Single || Config.SpeedLimitModel > SpeedLimitType.WaitCount)
            {
                Config.SpeedLimitModel = SpeedLimitType.ThreadCount;
            }

            if (Config.TaskCpuMultiple <= 0)
            {
                Config.TaskCpuMultiple = 1;
            }
            else if (Config.TaskCpuMultiple > 128)
            {
                Config.TaskCpuMultiple = 128;
            }

            if (Config.MaxWait < 0xFF)
            {
                Config.MaxWait = 0xFF;
            }
            else if (Config.MaxWait > 0xFFFFF)
            {
                Config.MaxWait = 0xFFFFF;
            }

            ShowOptionInfo(rootPath);
        }
Exemplo n.º 16
0
 /// <inheritdoc />
 protected override bool OnStart()
 {
     _inporcName = $"inproc://{StationName}_{RandomOperate.Generate(8)}.pub";
     return(base.OnStart());
 }
Exemplo n.º 17
0
        static void Main(string[] args)
        {
            // 工厂方法
            //FactoryMethodTest.Test();
            // 泛型工厂方法
            //FactoryMethod2Test.Test();

            // 抽象工厂
            //AbstractFactoryTest.Test();

            // 泛型抽象工厂
            //AbstractFactoryTest2.Test();

            // 单列模式
            //Business.Bulider.Client.TestCase1();
            //Business.Bulider2.Client.TestCase2();

            // 原型模式
            //DesignPatterns.Business.Prototype.Client.TestCase1();
            //DesignPatterns.Business.Prototype2.Client.TestCase2();
            //DesignPatterns.Business.Prototype3.Client.TestCase3();
            //DesignPatterns.Business.Prototype4.Client.TestCase4();

            // 组合模式
            //DesignPatterns.Business.Composite.Client.TestCase1();

            // 桥接模式
            // DesignPatterns.Business.Bridge.Client.TestCase1();

            // 适配器模式
            //DesignPatterns.Business.Adapter.Client.TestCase1();
            //DesignPatterns.Business.Adapter2.Client.TestCase2();

            // 装饰模式
            //DesignPatterns.Business.Decorator.Client.TestCase1();
            //DesignPatterns.Business.Decorator2.Client.TestCase1();

            //外观模式
            //DesignPatterns.Business.Facade.Client.TestCase1();

            // Flyweight(享元)
            //DesignPatterns.Business.Flyweight.Client.TestCase1();
            // 代理模式
            //DesignPatterns.Business.Proxy.Client.TestCase1();

            // 职责链
            // DesignPatterns.Business.ChainOfResponsibilityPattern.Client.TestCase1();

            // Command(命令)
            // DesignPatterns.Business.Command1.Client.TestCase1();
            // DesignPatterns.Business.Command2.Client.TestCase2();
            //DesignPatterns.Business.Command3.Client.TestCase3();
            //DesignPatterns.Business.Command4.Client.TestCase4();
            // DesignPatterns.Business.Command5.Client.TestCase5();
            // DesignPatterns.Business.Command6.Client.TestCase6();
            // DesignPatterns.Business.Command.Client.TestCase7();

            //Interpreter(解释器)
            // DesignPatterns.Business.Interpreter1.Client.TestCase1();
            // DesignPatterns.Business.Interpreter2.Client.TestCase2();

            // Iterator(迭代器)
            //DesignPatterns.Business.Iterator1.Client.TestCase1();

            // Mediator(中介者)
            // DesignPatterns.Business.Mediator.Client.TestCase1();

            // Memento(备忘录)
            // DesignPatterns.Business.Memento.Client.TestCase1();

            // Observer(观察者)
            //DesignPatterns.Business.Observer.Client.TestCase1();

            // State(状态)
            //DesignPatterns.Business.State.Client.TestCase1();

            //Strategy(策略)
            //DesignPatterns.Business.Strategy.Client.TestCase1();

            //Template Method(模板方法)
            //DesignPatterns.Business.TemplateMethod.Client.TestCase1();

            //Visitor(访问者)
            //DesignPatterns.Business.Visitor1.Client.TestCase1();
            //DesignPatterns.Business.Visitor2.Client.TestCase2();
            //DesignPatterns.Business.Visitor3.Client.TestCase3();

            //Object Pool(对象池)
            DesignPatterns.Business.ObjectPool1.Client.TestCase1();

            //随机数
            Console.WriteLine(DesignPatterns.UniqueId.UniqueId.Generate());
            var randomOperate = new RandomOperate();

            for (int i = 0; i < 100; i++)
            {
                Console.WriteLine(randomOperate.GenerateCheckCode(1));
            }


            // 快速排序
            //DesignPatterns.Sort.QuickSort.Client();
            Console.ReadLine();
        }
Exemplo n.º 18
0
 /// <summary>
 /// 构造
 /// </summary>
 public RequestInfo() : this($"{GlobalContext.ServiceName}-{RandomOperate.Generate(6)}")
 {
 }
Exemplo n.º 19
0
 /// <summary>
 /// 取请求ID
 /// </summary>
 public static string GetRequestId()
 {
     return(GetRequestIdFunc?.Invoke() ?? RandomOperate.Generate(8));
 }
Exemplo n.º 20
0
        /// <summary>
        ///     执行检查
        /// </summary>
        /// <returns>
        ///     0:表示通过验证,可以继续
        ///     1:令牌为空或不合格
        ///     2:令牌是伪造的
        /// </returns>
        private int Check(HttpRequestMessage request)
        {
            if (Request.RequestUri.LocalPath == "/v1/oauth/getdid")
            {
                return(ErrorCode.Success);
            }
            if (Request.RequestUri.LocalPath == "/v1/sys/flush")
            {
                return(ErrorCode.Success);
            }
            var token = GlobalContext.Current.Request.Token = ExtractToken(request);

            if (string.IsNullOrWhiteSpace(GlobalContext.Current.Token))
            {
                return(ErrorCode.DenyAccess);
            }
            int state;

            switch (token[0])
            {
            case '{':
                state = CheckServiceKey(token);
                break;

            case '$':
                state = RevertCallContext(token);
                break;

            case '#':
                GlobalContext.SetRequestContext(new RequestInfo(GlobalContext.ServiceKey, RandomOperate.Generate(8))
                {
                    Token = token
                });
                state = CheckAccessToken(GlobalContext.Current.Token);
                break;

            case '%':
                GlobalContext.SetRequestContext(new RequestInfo(GlobalContext.ServiceKey, RandomOperate.Generate(8))
                {
                    Token = token
                });
                state = 0;
                break;

            default:
                GlobalContext.SetRequestContext(new RequestInfo(GlobalContext.ServiceKey, RandomOperate.Generate(8))
                {
                    Token = token
                });
                state = CheckDeviceId(token);
                break;
            }

            if (state != 0)
            {
                return(state);
            }
            var page = Request.RequestUri.Segments[2];

            BusinessContext.Context.PowerChecker?.LoadAuthority(page);
            return(0);
        }