📄 scorehelper.cs
字号:
namespace Imps.Client.Core
{
using Imps.Base.Sipc;
using Imps.Client.Base;
using System;
using System.Threading;
public class ScoreHelper
{
private Imps.Client.Core.User _user;
private SipRequest req;
private int retryTime = 3;
private const int Timeout = 0x15f90;
private AutoResetEvent waitScore;
public ScoreHelper(Imps.Client.Core.User user)
{
this._user = user;
}
public void AsyncGetScore()
{
ThreadPool.QueueUserWorkItem(new WaitCallback(this.GetScore));
}
private void ClearScore()
{
this.User.ScoreInfo._scoreVale = 0;
this.User.ScoreInfo._scoreLevel = 0;
this.User.ScoreInfo._levelScore = 0;
this.User.ScoreInfo._saveDate = new DateTime(0x76c, 1, 1);
}
public void GetScore(object args)
{
this.req = this.User.CreateSipRequest("S");
this.req.Message.AddHeader(new SipcEventHeader("GetScore"));
this.req.RetryTimes = this.retryTime;
this.req.FinalResponseReceived += new EventHandler<SipResponseReceivedEventArgs>(this, (IntPtr) this.req_FinalResponseReceived);
this.req.SendMessageFailed += new EventHandler<FailedEventArgs>(this, (IntPtr) this.req_SendMessageFailed);
this.req.WaitResponseTimeout += new EventHandler(this.req_WaitResponseTimeout);
if (this.waitScore == null)
{
this.waitScore = new AutoResetEvent(false);
}
this.User.SendSipMessage(this.req);
this.waitScore.WaitOne(0x15f90, false);
LogHelper.LogInfo("获取积分数据结束");
}
private void req_FinalResponseReceived(object sender, SipResponseReceivedEventArgs e)
{
if (e.Response.IsOK)
{
try
{
string scoreXML = e.Response.Message.Body;
this.User.ScoreInfo.SaveScoreCache(scoreXML);
return;
}
catch
{
return;
}
finally
{
this.waitScore.Set();
}
}
this.waitScore.Set();
ErrorHelper.HandleReceivedErrorResponse(e.Response);
}
private void req_SendMessageFailed(object sender, FailedEventArgs e)
{
ErrorHelper.HandleSendRequestErrorAndTimeout(this.req);
this.waitScore.Set();
}
private void req_WaitResponseTimeout(object sender, EventArgs e)
{
ErrorHelper.HandleSendRequestErrorAndTimeout(this.req);
this.waitScore.Set();
}
public Imps.Client.Core.User User
{
get
{
return this._user;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -