using Microsoft.AspNetCore.Mvc;
using System.Net;
using System.Net.Http.Headers;
using Microsoft.Extensions.Hosting.Internal;
using Microsoft.AspNetCore.Http.Extensions;
using IStation.Untity;
using Furion.DynamicApiController;
using System.ComponentModel.DataAnnotations;
using Mapster;
using Microsoft.AspNetCore.Authorization;
namespace IStation.Application
{
///
/// BimfaceFile
///
[Route("Bimface/BimfaceFile/Logic")]
[ApiDescriptionSettings("Bimface", Name = "Bimface文件", Order = 899)]
public class BimfaceFile_LogicController : IDynamicApiController
{
///
/// 获取 AccessToken (业务)
///
[Route("GetAccessToken@V1.0")]
[HttpGet]
public string GetAccessToken()
{
var cacheKey = $"Bimface_BimfaceFile_Logic_GetAccessToken";
var vm = MemoryCacheHelper.GetSet(cacheKey, () => {
var client = BimfaceClient.GetClient(ConfigHelper.AppKey, ConfigHelper.AppSecret);
if (client == null)
return default;
return client.GetAccessToken();
}, CacheHelper.CacheLevel3);
return vm;
}
///
/// 通过 StationID 获取默认 ViewToken (业务)
///
[Route("GetDefaultViewTokenByStationID@V1.0")]
[HttpGet]
public string GetDefaultViewTokenByStationID([FromQuery][Required] StationIDUnderCorpInput input)
{
var corpId = input.CorpID;
var stationId=input.StationID;
var cacheKey = $"Bimface_BimfaceFile_Logic_GetDefaultViewTokenByStationID_{corpId}_{stationId}";
var vm = MemoryCacheHelper.GetSet(cacheKey, () => {
var fileMapping = new Service.BimfaceFileMapping().GetDefaultByBelongTypeAndBelongID(corpId,ObjectType.Station,stationId);
if (fileMapping == null)
return default;
var file = new Service.BimfaceFile().GetByID(corpId,fileMapping.BimfaceFileID);
if (file == null)
return default;
var client = BimfaceClient.GetClient(ConfigHelper.AppKey,ConfigHelper.AppSecret);
if (client == null)
return default;
return client.GetViewToken(file.BimfaceID);
},CacheHelper.CacheLevel4);
return vm;
}
///
/// 通过 StationID 获取默认 ViewToken (业务)(不需要验证token)
///
[AllowAnonymous]
[Route("GetDefaultViewTokenByStationID@V1.1")]
[HttpGet]
public string GetDefaultViewTokenByStationIDWithOutToken([FromQuery][Required] StationIDUnderCorpInput input)
{
var corpId = input.CorpID;
var stationId = input.StationID;
var cacheKey = $"Bimface_BimfaceFile_Logic_GetDefaultViewTokenByStationID_{corpId}_{stationId}";
var vm = MemoryCacheHelper.GetSet(cacheKey, () => {
var fileMapping = new Service.BimfaceFileMapping().GetDefaultByBelongTypeAndBelongID(corpId, ObjectType.Station, stationId);
if (fileMapping == null)
return default;
var file = new Service.BimfaceFile().GetByID(corpId, fileMapping.BimfaceFileID);
if (file == null)
return default;
var client = BimfaceClient.GetClient(ConfigHelper.AppKey, ConfigHelper.AppSecret);
if (client == null)
return default;
return client.GetViewToken(file.BimfaceID);
}, CacheHelper.CacheLevel4);
return vm;
}
///
/// 通过 BimfaceID(Bimface平台标识) 获取 ViewToken (业务)
///
[Route("GetViewTokenByBimfaceID@V1.0")]
[HttpGet]
public string GetViewTokenByBimfaceID([Required] long BimfaceID)
{
var client = BimfaceClient.GetClient(ConfigHelper.AppKey, ConfigHelper.AppSecret);
if (client == null)
return default;
return client.GetViewToken(BimfaceID);
}
///
/// 通过 BimfaceID(Bimface平台标识) 获取 ViewToken (业务)
///
[AllowAnonymous]
[Route("GetViewTokenByBimfaceID@V1.1")]
[HttpGet]
public string GetViewTokenByBimfaceID_V1_1([Required] long BimfaceID)
{
var client = BimfaceClient.GetClient(ConfigHelper.AppKey, ConfigHelper.AppSecret);
if (client == null)
return default;
return client.GetViewToken(BimfaceID);
}
///
/// 通过 StationID 获取默认 (业务)
///
[Route("GetDefaultByStationID@V1.0")]
[HttpGet]
public BimfaceFileLogicDto GetDefaultByStationID([FromQuery][Required] StationIDUnderCorpInput input)
{
var corpId = input.CorpID;
var stationId = input.StationID;
var cacheKey = $"Bimface_BimfaceFile_Logic_GetDefaultByStationID_{corpId}_{stationId}";
var vm = MemoryCacheHelper.GetSet(cacheKey, () => {
var fileMapping = new Service.BimfaceFileMapping().GetDefaultByBelongTypeAndBelongID(corpId, ObjectType.Station, stationId);
if (fileMapping == null)
return default;
var file = new Service.BimfaceFile().GetByID(corpId, fileMapping.BimfaceFileID);
if (file == null)
return default;
var vmCache = new BimfaceFileLogicDto(file,fileMapping);
return vmCache;
}, CacheHelper.CacheLevel3);
return vm;
}
///
/// 通过 StationID 获取默认带ViewToken (业务)
///
[Route("GetDefaultWithViewTokenByStationID@V1.0")]
[HttpGet]
public BimfaceFileWithViewTokenLogicDto GetDefaultWithViewTokenByStationID([FromQuery][Required] StationIDUnderCorpInput input)
{
var corpId = input.CorpID;
var stationId = input.StationID;
var cacheKey = $"Bimface_BimfaceFile_Logic_GetDefaultWithViewTokenByStationID_{corpId}_{stationId}";
var vm = MemoryCacheHelper.GetSet(cacheKey, () => {
var fileMapping = new Service.BimfaceFileMapping().GetDefaultByBelongTypeAndBelongID(corpId, ObjectType.Station, stationId);
if (fileMapping == null)
return default;
var file = new Service.BimfaceFile().GetByID(corpId, fileMapping.BimfaceFileID);
if (file == null)
return default;
var client = BimfaceClient.GetClient(ConfigHelper.AppKey, ConfigHelper.AppSecret);
if (client == null)
return default;
var viewToken= client.GetViewToken(file.BimfaceID);
var vmCache = new BimfaceFileWithViewTokenLogicDto(file, fileMapping, viewToken);
return vmCache;
}, CacheHelper.CacheLevel3);
return vm;
}
///
/// 通过 StationID 获取默认带ViewToken (业务)(不需要验证token)
///
[AllowAnonymous]
[Route("GetDefaultWithViewTokenByStationID@V1.1")]
[HttpGet]
public BimfaceFileWithViewTokenLogicDto GetDefaultWithViewTokenByStationIDWithOutToken([FromQuery][Required] StationIDUnderCorpInput input)
{
var corpId = input.CorpID;
var stationId = input.StationID;
var cacheKey = $"Bimface_BimfaceFile_Logic_GetDefaultWithViewTokenByStationID_{corpId}_{stationId}";
var vm = MemoryCacheHelper.GetSet(cacheKey, () => {
var fileMapping = new Service.BimfaceFileMapping().GetDefaultByBelongTypeAndBelongID(corpId, ObjectType.Station, stationId);
if (fileMapping == null)
return default;
var file = new Service.BimfaceFile().GetByID(corpId, fileMapping.BimfaceFileID);
if (file == null)
return default;
var client = BimfaceClient.GetClient(ConfigHelper.AppKey, ConfigHelper.AppSecret);
if (client == null)
return default;
var viewToken = client.GetViewToken(file.BimfaceID);
var vmCache = new BimfaceFileWithViewTokenLogicDto(file, fileMapping, viewToken);
return vmCache;
}, CacheHelper.CacheLevel3);
return vm;
}
}
}