using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
|
namespace IStation.Bimface
|
{
|
/// <summary>
|
/// 过期时间
|
/// </summary>
|
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<long, DateTime> _viewTokenGetTimeDic = new Dictionary<long, DateTime>();
|
|
/// <summary>
|
/// 设置AccessToken获取时间
|
/// </summary>
|
/// <param name="datetime"></param>
|
internal void SetAccessTokenExpireTime(DateTime datetime)
|
{
|
_accessTokenExpireTime = datetime;
|
}
|
|
/// <summary>
|
/// 验证AccessToken是否过期
|
/// </summary>
|
/// <returns>过期返回True</returns>
|
internal bool ValidAccessTokenExpiration(DateTime datetime)
|
{
|
if (datetime.AddHours(_accessTokenAllowance) > _accessTokenExpireTime)
|
return true;
|
return false;
|
}
|
|
/// <summary>
|
/// 设置ViewToken的获取时间
|
/// </summary>
|
/// <param name="id"></param>
|
/// <param name="datetime"></param>
|
internal void SetViewTokenGetTime(long id, DateTime datetime)
|
{
|
if (_viewTokenGetTimeDic.ContainsKey(id))
|
_viewTokenGetTimeDic[id] = datetime;
|
else
|
_viewTokenGetTimeDic.Add(id, datetime);
|
}
|
|
/// <summary>
|
/// 验证ViewToken是否过期
|
/// </summary>
|
/// <param name="id"></param>
|
/// <param name="datetime"></param>
|
/// <returns></returns>
|
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;
|
}
|
|
/// <summary>
|
/// 移除ViewToken时间
|
/// </summary>
|
/// <param name="id"></param>
|
internal void RemoveViewTokenTime(long id)
|
{
|
if (_viewTokenGetTimeDic.ContainsKey(id))
|
_viewTokenGetTimeDic.Remove(id);
|
}
|
|
|
}
|
}
|