Пример #1
0
        public async Task <bool> IsLogOn(IASync async, string username)
        {
            if (UserList.Find(p => p.UserName == username) == null)
            {
                UserInfo user = new UserInfo()
                {
                    UserName = username,
                    token    = async.GetAsyncToken()
                };

                async.UserToken  = user;
                async.IsValidate = true;

                user.Nick = (await async.Get <ClientMethods>().GetNick()).As <string>();

                async.Get <ClientMethods>().SetUserList(UserList);

                foreach (var item in UserList)
                {
                    item.token.Get <ClientMethods>().AddUser(user);
                }

                async.UserDisconnect += AsyncUser_UserDisconnect;

                UserList.Add(user);

                return(true);
            }
            else
            {
                return(false);
            }
        }
Пример #2
0
        public async Task <bool> MessageShow2(IASync async, string msg)
        {
            var clientserv = async.Get <IClientServ>();

            var p = await clientserv.ShowMsg(msg);


            //你可以从 p.IsError 来判断是否发生了错误,比如读取超时,或者客户端断线之类的
            //至于超时读取设置你可以在build的时候设置timeout时间
            //你可以从 p.ErrorMsg,打印错误内容
            //你也可以从 p.ErrorId判断错误信息
            //你还能从  p.IsHaveValue 来判断是否有返回值

            if (p.As <bool>()) //从Result对象中读取一个bool结果,如果有多个返回值你可以As<bool>(0),As<bool>(1),As<bool>(2)
            {
                Console.WriteLine(msg);
                Log.Debug($"客户端打印了我就打印 {msg}");

                clientserv.Good("表扬一下");//表扬客户端一下

                return(true);
            }
            else
            {
                Log.Debug($"客户端打印失败所以我就不打印了");
                return(false);
            }
        }
Пример #3
0
 public async Task <int> TestRec(IASync async, int count)
 {
     count--;
     if (count > 1)
     {
         count = (await async.Get <IPacker>().TestRecAsync(count)).As <int>();
     }
     return(count);
 }
Пример #4
0
 public async Task <int> Number(IASync async, int num) //一样传入IASync对象,放在第一位,重要的事情要说3遍
 {
     num--;
     if (num > 1)
     {
         num = (await async.Get <IService>().NumberRec(num)).As <int>();
     }
     return(num);
 }
Пример #5
0
 public async Task <int> NumberRec(IASync async, int num)
 {
     num--;
     if (num > 1)
     {
         return((await async.Get <IClientServ>().NumberRec(num)).As <int>()); //调用客户端的递归方法
     }
     else
     {
         return(num);
     }
 }
Пример #6
0
        public async Task <Result> StartDown(IASync async, string url)
        {
            var htmldata = (await async.Get <IClientPack>().DownHtmlAsync(url))?[0]?.Value <byte[]>();

            if (htmldata != null)
            {
                string html = Encoding.UTF8.GetString(htmldata);

                return(async.Res(html));
            }


            return(async.Res());// or async.RET(null);
        }
Пример #7
0
        public async Task <Result> TestRec(IASync async, int count)
        {
            count--;
            if (count > 1)
            {
                var x = (await async.Get <IClientPack>().TestRecAsync(count))?[0]?.Value <int>();

                if (x != null && x.HasValue)
                {
                    count = x.Value;
                }
            }

            return(async.Res(count));
        }