[Backend]修改forge相關參數的位置及對應的撈取方式
This commit is contained in:
parent
fcbb74d411
commit
5365ab66c0
@ -1,6 +1,7 @@
|
|||||||
using Autodesk.Forge;
|
using Autodesk.Forge;
|
||||||
using Autodesk.Forge.Model;
|
using Autodesk.Forge.Model;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Microsoft.Extensions.Configuration;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
@ -9,6 +10,9 @@ namespace forgeSample.Controllers
|
|||||||
[ApiController]
|
[ApiController]
|
||||||
public class ModelDerivativeController : ControllerBase
|
public class ModelDerivativeController : ControllerBase
|
||||||
{
|
{
|
||||||
|
private static IConfiguration _configuration;
|
||||||
|
|
||||||
|
public ModelDerivativeController(IConfiguration configuration) { _configuration = configuration; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Start the translation job for a give bucketKey/objectName
|
/// Start the translation job for a give bucketKey/objectName
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -18,7 +22,7 @@ namespace forgeSample.Controllers
|
|||||||
[Route("api/forge/modelderivative/jobs")]
|
[Route("api/forge/modelderivative/jobs")]
|
||||||
public async Task<dynamic> TranslateObject([FromBody] TranslateObjectModel objModel)
|
public async Task<dynamic> TranslateObject([FromBody] TranslateObjectModel objModel)
|
||||||
{
|
{
|
||||||
dynamic oauth = await OAuthController.GetInternalAsync();
|
dynamic oauth = await OAuthController.GetInternalAsync(_configuration);
|
||||||
|
|
||||||
// prepare the payload
|
// prepare the payload
|
||||||
List<JobPayloadItem> outputs = new List<JobPayloadItem>()
|
List<JobPayloadItem> outputs = new List<JobPayloadItem>()
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using Autodesk.Forge;
|
using Autodesk.Forge;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Microsoft.Extensions.Configuration;
|
||||||
using System;
|
using System;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
@ -14,6 +15,9 @@ namespace forgeSample.Controllers
|
|||||||
// them after the expires_in time (in seconds)
|
// them after the expires_in time (in seconds)
|
||||||
private static dynamic InternalToken { get; set; }
|
private static dynamic InternalToken { get; set; }
|
||||||
private static dynamic PublicToken { get; set; }
|
private static dynamic PublicToken { get; set; }
|
||||||
|
private static IConfiguration _configuration;
|
||||||
|
|
||||||
|
public OAuthController(IConfiguration configuration) { _configuration = configuration; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Get access token with public (viewables:read) scope
|
/// Get access token with public (viewables:read) scope
|
||||||
@ -24,7 +28,7 @@ namespace forgeSample.Controllers
|
|||||||
{
|
{
|
||||||
if (PublicToken == null || PublicToken.ExpiresAt < DateTime.UtcNow)
|
if (PublicToken == null || PublicToken.ExpiresAt < DateTime.UtcNow)
|
||||||
{
|
{
|
||||||
PublicToken = await Get2LeggedTokenAsync(new Scope[] { Scope.ViewablesRead });
|
PublicToken = await Get2LeggedTokenAsync(_configuration, new Scope[] { Scope.ViewablesRead });
|
||||||
PublicToken.ExpiresAt = DateTime.UtcNow.AddSeconds(PublicToken.expires_in);
|
PublicToken.ExpiresAt = DateTime.UtcNow.AddSeconds(PublicToken.expires_in);
|
||||||
}
|
}
|
||||||
return PublicToken;
|
return PublicToken;
|
||||||
@ -33,11 +37,11 @@ namespace forgeSample.Controllers
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Get access token with internal (write) scope
|
/// Get access token with internal (write) scope
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static async Task<dynamic> GetInternalAsync()
|
public static async Task<dynamic> GetInternalAsync(IConfiguration Configuration)
|
||||||
{
|
{
|
||||||
if (InternalToken == null || InternalToken.ExpiresAt < DateTime.UtcNow)
|
if (InternalToken == null || InternalToken.ExpiresAt < DateTime.UtcNow)
|
||||||
{
|
{
|
||||||
InternalToken = await Get2LeggedTokenAsync(new Scope[] { Scope.BucketCreate, Scope.BucketRead, Scope.BucketDelete, Scope.DataRead, Scope.DataWrite, Scope.DataCreate, Scope.CodeAll });
|
InternalToken = await Get2LeggedTokenAsync(Configuration, new Scope[] { Scope.BucketCreate, Scope.BucketRead, Scope.BucketDelete, Scope.DataRead, Scope.DataWrite, Scope.DataCreate, Scope.CodeAll });
|
||||||
InternalToken.ExpiresAt = DateTime.UtcNow.AddSeconds(InternalToken.expires_in);
|
InternalToken.ExpiresAt = DateTime.UtcNow.AddSeconds(InternalToken.expires_in);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -47,13 +51,13 @@ namespace forgeSample.Controllers
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Get the access token from Autodesk
|
/// Get the access token from Autodesk
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private static async Task<dynamic> Get2LeggedTokenAsync(Scope[] scopes)
|
private static async Task<dynamic> Get2LeggedTokenAsync(IConfiguration Configuration, Scope[] scopes)
|
||||||
{
|
{
|
||||||
TwoLeggedApi oauth = new TwoLeggedApi();
|
TwoLeggedApi oauth = new TwoLeggedApi();
|
||||||
string grantType = "client_credentials";
|
string grantType = "client_credentials";
|
||||||
dynamic bearer = await oauth.AuthenticateAsync(
|
dynamic bearer = await oauth.AuthenticateAsync(
|
||||||
GetAppSetting("FORGE_CLIENT_ID"),
|
GetAppSetting(Configuration, "Forge:CLIENT_ID"),
|
||||||
GetAppSetting("FORGE_CLIENT_SECRET"),
|
GetAppSetting(Configuration, "Forge:CLIENT_SECRET"),
|
||||||
grantType,
|
grantType,
|
||||||
scopes);
|
scopes);
|
||||||
return bearer;
|
return bearer;
|
||||||
@ -62,9 +66,9 @@ namespace forgeSample.Controllers
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Reads appsettings from web.config
|
/// Reads appsettings from web.config
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string GetAppSetting(string settingKey)
|
public static string GetAppSetting(IConfiguration Configuration, string settingKey)
|
||||||
{
|
{
|
||||||
return Environment.GetEnvironmentVariable(settingKey).Trim();
|
return Configuration.GetValue<string>(settingKey).Trim();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -3,6 +3,7 @@ using Autodesk.Forge.Model;
|
|||||||
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Microsoft.Extensions.Configuration;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@ -13,9 +14,12 @@ namespace forgeSample.Controllers
|
|||||||
public class OSSController : ControllerBase
|
public class OSSController : ControllerBase
|
||||||
{
|
{
|
||||||
private IWebHostEnvironment _env;
|
private IWebHostEnvironment _env;
|
||||||
public OSSController(IWebHostEnvironment env) { _env = env; }
|
private static IConfiguration _configuration;
|
||||||
public string ClientId { get { return OAuthController.GetAppSetting("FORGE_CLIENT_ID").ToLower(); } }
|
|
||||||
|
|
||||||
|
public OSSController(IWebHostEnvironment env, IConfiguration configuration) { _env = env; _configuration = configuration; }
|
||||||
|
public string ClientId { get { return _configuration.GetValue<string>("Forge:CLIENT_ID").ToLower(); } }
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Return list of buckets (id=#) or list of objects (id=bucketKey)
|
/// Return list of buckets (id=#) or list of objects (id=bucketKey)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -24,7 +28,7 @@ namespace forgeSample.Controllers
|
|||||||
public async Task<IList<TreeNode>> GetOSSAsync(string id)
|
public async Task<IList<TreeNode>> GetOSSAsync(string id)
|
||||||
{
|
{
|
||||||
IList<TreeNode> nodes = new List<TreeNode>();
|
IList<TreeNode> nodes = new List<TreeNode>();
|
||||||
dynamic oauth = await OAuthController.GetInternalAsync();
|
dynamic oauth = await OAuthController.GetInternalAsync(_configuration);
|
||||||
|
|
||||||
if (id == "#") // root
|
if (id == "#") // root
|
||||||
{
|
{
|
||||||
@ -81,7 +85,7 @@ namespace forgeSample.Controllers
|
|||||||
public async Task<dynamic> CreateBucket([FromBody] CreateBucketModel bucket)
|
public async Task<dynamic> CreateBucket([FromBody] CreateBucketModel bucket)
|
||||||
{
|
{
|
||||||
BucketsApi buckets = new BucketsApi();
|
BucketsApi buckets = new BucketsApi();
|
||||||
dynamic token = await OAuthController.GetInternalAsync();
|
dynamic token = await OAuthController.GetInternalAsync(_configuration);
|
||||||
buckets.Configuration.AccessToken = token.access_token;
|
buckets.Configuration.AccessToken = token.access_token;
|
||||||
PostBucketsPayload bucketPayload = new PostBucketsPayload(string.Format("{0}-{1}", ClientId, bucket.bucketKey.ToLower()), null,
|
PostBucketsPayload bucketPayload = new PostBucketsPayload(string.Format("{0}-{1}", ClientId, bucket.bucketKey.ToLower()), null,
|
||||||
PostBucketsPayload.PolicyKeyEnum.Transient);
|
PostBucketsPayload.PolicyKeyEnum.Transient);
|
||||||
@ -111,7 +115,7 @@ namespace forgeSample.Controllers
|
|||||||
|
|
||||||
|
|
||||||
// get the bucket...
|
// get the bucket...
|
||||||
dynamic oauth = await OAuthController.GetInternalAsync();
|
dynamic oauth = await OAuthController.GetInternalAsync(_configuration);
|
||||||
ObjectsApi objects = new ObjectsApi();
|
ObjectsApi objects = new ObjectsApi();
|
||||||
objects.Configuration.AccessToken = oauth.access_token;
|
objects.Configuration.AccessToken = oauth.access_token;
|
||||||
|
|
||||||
|
@ -82,5 +82,9 @@
|
|||||||
"Account": "FMiVG4sIeDFmAUc/8Hn/kw==", //巨蛋
|
"Account": "FMiVG4sIeDFmAUc/8Hn/kw==", //巨蛋
|
||||||
"Password": "4+ussQ8rHohjPWpNvoujJQ==" //巨蛋
|
"Password": "4+ussQ8rHohjPWpNvoujJQ==" //巨蛋
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"Forge": {
|
||||||
|
"CLIENT_ID": "kDOSvxcoLPCFKTncWV9GxgFcGFMkUz9W",
|
||||||
|
"CLIENT_SECRET": "peaXsHcAorGNdZYd"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -64,5 +64,9 @@
|
|||||||
"Account": "FMiVG4sIeDFmAUc/8Hn/kw==", //巨蛋
|
"Account": "FMiVG4sIeDFmAUc/8Hn/kw==", //巨蛋
|
||||||
"Password": "4+ussQ8rHohjPWpNvoujJQ==" //巨蛋
|
"Password": "4+ussQ8rHohjPWpNvoujJQ==" //巨蛋
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"Forge": {
|
||||||
|
"CLIENT_ID": "kDOSvxcoLPCFKTncWV9GxgFcGFMkUz9W",
|
||||||
|
"CLIENT_SECRET": "peaXsHcAorGNdZYd"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -287,8 +287,8 @@
|
|||||||
//2023-05 三菱 dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6em80emd1eWFsaGpybDVvODF2YTM5cGtkZ3I4MndhbXEtbWl6dWJpc2hpLyVFMyU4MCU5MCVFNSU4RiVCMCVFNSU4QyU5NyVFNCVCOCVBRCVFOCU4RiVCMSVFNSVBNCVBNyVFNiVBOCU5MyVFMyU4MCU5MUFSQyVFOSU5QiU5OSVFNiVBOCVBMSVFNSVCQyU4RitNRVAlRTYlOEIlODYlRTclQjMlQkIlRTclQjUlQjFfJUU5JTlCJUJCJUU2JUEyJUFGJUU3JUI0JUIwJUU3JUFGJTgwJUU3JTg5JTg4Lm53ZA
|
//2023-05 三菱 dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6em80emd1eWFsaGpybDVvODF2YTM5cGtkZ3I4MndhbXEtbWl6dWJpc2hpLyVFMyU4MCU5MCVFNSU4RiVCMCVFNSU4QyU5NyVFNCVCOCVBRCVFOCU4RiVCMSVFNSVBNCVBNyVFNiVBOCU5MyVFMyU4MCU5MUFSQyVFOSU5QiU5OSVFNiVBOCVBMSVFNSVCQyU4RitNRVAlRTYlOEIlODYlRTclQjMlQkIlRTclQjUlQjFfJUU5JTlCJUJCJUU2JUEyJUFGJUU3JUI0JUIwJUU3JUFGJTgwJUU3JTg5JTg4Lm53ZA
|
||||||
//launchViewer("dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6em80emd1eWFsaGpybDVvODF2YTM5cGtkZ3I4MndhbXEtbWl6dWJpc2hpLyVFMyU4MCU5MCVFNSU4RiVCMCVFNSU4QyU5NyVFNCVCOCVBRCVFOCU4RiVCMSVFNSVBNCVBNyVFNiVBOCU5MyVFMyU4MCU5MUFSQyVFOSU5QiU5OSVFNiVBOCVBMSVFNSVCQyU4RitNRVAlRTYlOEIlODYlRTclQjMlQkIlRTclQjUlQjFfJUU5JTlCJUJCJUU2JUEyJUFGJUU3JUI0JUIwJUU3JUFGJTgwJUU3JTg5JTg4Lm53ZA");
|
//launchViewer("dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6em80emd1eWFsaGpybDVvODF2YTM5cGtkZ3I4MndhbXEtbWl6dWJpc2hpLyVFMyU4MCU5MCVFNSU4RiVCMCVFNSU4QyU5NyVFNCVCOCVBRCVFOCU4RiVCMSVFNSVBNCVBNyVFNiVBOCU5MyVFMyU4MCU5MUFSQyVFOSU5QiU5OSVFNiVBOCVBMSVFNSVCQyU4RitNRVAlRTYlOEIlODYlRTclQjMlQkIlRTclQjUlQjFfJUU5JTlCJUJCJUU2JUEyJUFGJUU3JUI0JUIwJUU3JUFGJTgwJUU3JTg5JTg4Lm53ZA");
|
||||||
|
|
||||||
//2024-03-19 黑丸 dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6a2Rvc3Z4Y29scGNma3RuY3d2OWd4Z2ZjZ2Zta3V6OXctZGVtby8lRTMlODAlOTAlRTklQkIlOTElRTQlQjglQjglRTMlODAlOTElRTQlQkElOEMlRTUlQkIlQTArJUU0JUI4JTg5JUU1JUJCJUEwLm53ZA
|
//2024-03-19 黑丸 dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6a2Rvc3Z4Y29scGNma3RuY3d2OWd4Z2ZjZ2Zta3V6OXctZGVtby8lRTMlODAlOTAlRTklQkIlOTElRTQlQjglQjglRTMlODAlOTElRTQlQkElOEMlRTUlQkIlQTArJUU0JUI4JTg5JUU1JUJCJUEwKCVFNiVCMCVCNCVFNyVBRSVBMSkwMzE2Lm53ZA
|
||||||
launchViewer("dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6a2Rvc3Z4Y29scGNma3RuY3d2OWd4Z2ZjZ2Zta3V6OXctZGVtby8lRTMlODAlOTAlRTklQkIlOTElRTQlQjglQjglRTMlODAlOTElRTQlQkElOEMlRTUlQkIlQTArJUU0JUI4JTg5JUU1JUJCJUEwLm53ZA");
|
launchViewer("dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6a2Rvc3Z4Y29scGNma3RuY3d2OWd4Z2ZjZ2Zta3V6OXctZGVtby8lRTMlODAlOTAlRTklQkIlOTElRTQlQjglQjglRTMlODAlOTElRTQlQkElOEMlRTUlQkIlQTArJUU0JUI4JTg5JUU1JUJCJUEwKCVFNiVCMCVCNCVFNyVBRSVBMSkwMzE2Lm53ZA");
|
||||||
});
|
});
|
||||||
function move1Floor() {
|
function move1Floor() {
|
||||||
setElevatorSpeed(0.2);
|
setElevatorSpeed(0.2);
|
||||||
|
Loading…
Reference in New Issue
Block a user