using System; using System.Runtime.CompilerServices; using SystemX.Core.DB; using SystemX.Core.Services; using WebApi.Library.Enums; using WebApi.Project.ProxyKMS.Models; namespace WebApi.Project.ProxyKMS.Services { public class KmsService : HttpService { private readonly IServiceScopeFactory _scopeFactory; private readonly ConfigService? _configService; private API KmsApi = new API(); public KmsService(IServiceProvider serviceProvider, IServiceScopeFactory scopeFactory, ConfigService configSerice) { _scopeFactory = scopeFactory; _configService = configSerice; KmsApi = _configService.GetConfig().API.Find(x=>x.ApiName.ToLower() == "kms"); } public async Task PostKms(REQUEST request, string guid = "", [CallerMemberName] string memberName = "") where REQUEST : class where RESPONSE : class { RESPONSE? response = default(RESPONSE); LogXnet.WriteLine($"KmsService.PostKms::{memberName}", LogXLabel.Debug); if (request != null) { var function = KmsApi.Functions.Find(x => x.Name == memberName); response = await PostJsonAsync($"{function.Url}", request); } return response; } public async Task PutKms(REQUEST request, string guid = "", [CallerMemberName] string memberName = "") where REQUEST : class where RESPONSE : class { RESPONSE? response = default(RESPONSE); LogXnet.WriteLine($"KmsService.PutKms::{memberName}", LogXLabel.Debug); if (request != null) { var function = KmsApi.Functions.Find(x => x.Name == memberName); response = await PutJsonAsync($"{function.Url}", request); } return response; } } }