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.Http;
using Furion.DependencyInjection;
using Microsoft.AspNetCore.Authorization;
using Furion.DataEncryption;
using Furion.FriendlyException;
namespace IStation.Application
{
///
/// Bimface
///
[AllowAnonymous]
[Route("LargeScreen/Demo/Bimface")]
[ApiDescriptionSettings("LargeScreen", Name = "Demo(Bimface)", Order = 666)]
public class DemoBimface_Controller : IDynamicApiController, ITransient
{
private readonly IHttpContextAccessor _httpContextAccessor;
///
///
///
public DemoBimface_Controller(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
///
/// 通过 StationID 获取默认 ViewToken
///
[Route("GetDefaultViewTokenByStationID")]
[HttpGet]
public string GetDefaultViewTokenByStationID([FromQuery][Required] StationIDUnderCorpInput input)
{
var corpId = input.CorpID;
var stationId = input.StationID;
var cacheKey = $"LargeScreen_Demo_Bimface_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
///
[Route("GetDefaultWithViewTokenByStationID")]
[HttpGet]
public DemoBimfaceFileWithViewTokenDto GetDefaultWithViewTokenByStationID([FromQuery][Required] StationIDUnderCorpInput input)
{
var corpId = input.CorpID;
var stationId = input.StationID;
var cacheKey = $"LargeScreen_Demo_Bimface_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 DemoBimfaceFileWithViewTokenDto(file, fileMapping, viewToken);
return vmCache;
}, CacheHelper.CacheLevel3);
return vm;
}
}
}