using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using IStation.Bimface;
namespace IStation
{
///
/// ViewToken
///
public sealed partial class BimfaceClient
{
///
/// 获取ViewToken
///
public string GetViewToken(long id, eModelIdType modeltype = eModelIdType.fileId)
{
GetAccessToken();
if (_expiretime.ValidViewTokenExpiration(id, DateTime.Now))
getViewToken(id, modeltype);
return _viewtokenDic[id];
}
//视图令牌请求地址
private const string _viewtokenurl = @"https://api.bimface.com/view/token";
//获取ViewToken,内部调用
private void getViewToken(long id, eModelIdType modeltype = eModelIdType.fileId)
{
var url = string.Format("{0}?{1}={2}", _viewtokenurl, modeltype.ToString(), id);
using (var httpClient = new HttpClient())
{
httpClient.DefaultRequestHeaders.Add("Method","Get");
var header = new HttpHeaders().GetBasicAuthorHeader(_accesstoken);
httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
var response=httpClient.GetAsync(url).Result;
response.EnsureSuccessStatusCode();
var responsetext=response.Content.ReadAsStringAsync().Result;
var result = JsonHelper.Json2Object>(responsetext);
if (result.code != Constants.Success)
{
throw new BimfaceException(result.code);
}
if (_viewtokenDic.ContainsKey(id))
_viewtokenDic[id] = result.data;
else
_viewtokenDic.Add(id, result.data);
_expiretime.SetViewTokenGetTime(id, DateTime.Now);
}
}
}
}