namespace Yw.Bimface
{
///
/// 过期时间
///
internal class ExpireTime
{
private const int _accessTokenAllowance = 2;//AccessToken的时间余量(小时)
private const int _viewTokenHours = 12;//ViewToken的生命周期(小时)
private const int _viewTokenAllowance = 10;//ViewToken的时间余量(分钟)
//AccessToken的过期时间
private DateTime _accessTokenExpireTime;
//ViewToken的获取时间字典
private Dictionary _viewTokenGetTimeDic = new Dictionary();
///
/// 设置AccessToken获取时间
///
///
internal void SetAccessTokenExpireTime(DateTime datetime)
{
_accessTokenExpireTime = datetime;
}
///
/// 验证AccessToken是否过期
///
/// 过期返回True
internal bool ValidAccessTokenExpiration(DateTime datetime)
{
if (datetime.AddHours(_accessTokenAllowance) > _accessTokenExpireTime)
return true;
return false;
}
///
/// 设置ViewToken的获取时间
///
///
///
internal void SetViewTokenGetTime(long id, DateTime datetime)
{
if (_viewTokenGetTimeDic.ContainsKey(id))
_viewTokenGetTimeDic[id] = datetime;
else
_viewTokenGetTimeDic.Add(id, datetime);
}
///
/// 验证ViewToken是否过期
///
///
///
///
internal bool ValidViewTokenExpiration(long id, DateTime datetime)
{
if (!_viewTokenGetTimeDic.ContainsKey(id))
return true;
var gettime = _viewTokenGetTimeDic[id];
if (gettime.AddHours(_viewTokenHours).AddMinutes(-_viewTokenAllowance) > datetime)
return false;
return true;
}
///
/// 移除ViewToken时间
///
///
internal void RemoveViewTokenTime(long id)
{
if (_viewTokenGetTimeDic.ContainsKey(id))
_viewTokenGetTimeDic.Remove(id);
}
}
}