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); } }
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); } }
public async Task <int> TestRec(IASync async, int count) { count--; if (count > 1) { count = (await async.Get <IPacker>().TestRecAsync(count)).As <int>(); } return(count); }
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); }
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); } }
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); }
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)); }