CloudGamingAdmin/admin-server/CloudGaming.Code.DataBaseModel/AppConfig.cs
2024-12-10 12:20:38 +08:00

160 lines
4.4 KiB
C#

using CloudGaming.AppConfigModel;
using HZY.Framework.DependencyInjection;
using Microsoft.Identity.Client;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CloudGaming.Code.DataBaseModel;
/// <summary>
///
/// </summary>
public class AppConfig : CloudGaming.AppConfigModel.AppConfig, IScopedSelfDependency
{
public AppConfig() { }
/// <summary>
/// app版本
/// </summary>
public string AppVersion { get; set; }
/// <summary>
/// 缓存版本
/// </summary>
public int CacheVersion { get; set; }
}
/// <summary>
///
/// </summary>
public static class AppConfigExtend
{
/// <summary>
///
/// </summary>
public static string[] AppDataBaseTypes = {
AppDataBaseType.Game.ToString(),
AppDataBaseType.App.ToString(),
AppDataBaseType.User.ToString(),
AppDataBaseType.Ext.ToString()
};
/// <summary>
///
/// </summary>
/// <param name="type"></param>
/// <returns></returns>
public static bool IsAppDataBase(string type)
{
return AppDataBaseTypes.Contains(type);
}
/// <summary>
///
/// </summary>
/// <param name="_appConfig"></param>
/// <param name="appConfig"></param>
public static void CopyTo(this AppConfig _appConfig, AppConfig appConfig)
{
if (appConfig == null)
{
appConfig = new AppConfig();
}
appConfig.AppVersion = _appConfig.AppVersion;
appConfig.Identifier = _appConfig.Identifier;
appConfig.UserConnectionString = _appConfig.UserConnectionString;
appConfig.GameConnectionString = _appConfig.GameConnectionString;
appConfig.ExtConnectionString = _appConfig.ExtConnectionString;
appConfig.PhoneConnectionString = _appConfig.PhoneConnectionString;
appConfig.RedisConnectionString = _appConfig.RedisConnectionString;
appConfig.DomainName = _appConfig.DomainName;
appConfig.Name = _appConfig.Name;
appConfig.TenantId = _appConfig.TenantId;
appConfig.Payment = _appConfig.Payment;
appConfig.CacheVersion = _appConfig.CacheVersion;
appConfig.AliyunConfig = _appConfig.AliyunConfig;
appConfig.DefaultLanguage = _appConfig.DefaultLanguage ?? "zh";
if (appConfig.UserConfig == null)
{
appConfig.UserConfig = new UserConfig();
}
appConfig.UserConfig = _appConfig.UserConfig;
appConfig.Payment = _appConfig.Payment;
appConfig.GameConfig = _appConfig.GameConfig;
appConfig.UserAgreement = _appConfig.UserAgreement;
appConfig.PrivacyAgreement = _appConfig.PrivacyAgreement;
appConfig.LanguageRequestUrl = _appConfig.LanguageRequestUrl;
appConfig.CacheRequestUrls = _appConfig.CacheRequestUrls;
}
/// <summary>
///
/// </summary>
/// <param name="appConfigs"></param>
/// <param name="host"></param>
/// <param name="appConfig"></param>
public static void GetTenantIdAppConfig(this List<AppConfig> appConfigs, Guid tenantId, AppConfig appConfig = null)
{
if (appConfigs == null && appConfigs.Count == 0)
{
return;
}
var _appConfig = appConfigs.FirstOrDefault(it => it.TenantId == tenantId);
if (_appConfig == null)
{
return;
}
if (appConfig == null)
{
appConfig = new AppConfig();
}
_appConfig.CopyTo(appConfig);
}
/// <summary>
///
/// </summary>
/// <param name="appConfigs"></param>
/// <param name="host"></param>
/// <param name="appConfig"></param>
public static void GetHostOrDefaultAppConfig(this List<AppConfig> appConfigs, string host, AppConfig appConfig = null)
{
if (appConfigs == null && appConfigs.Count == 0)
{
return;
}
var _appConfig = appConfigs.FirstOrDefault(it => it.DomainName == host);
if (_appConfig == null)
{
_appConfig = appConfigs.FirstOrDefault(it => it.Identifier == "default" || it.Name == "default");
}
if (_appConfig == null)
{
_appConfig = appConfigs[0];
}
if (appConfig == null)
{
appConfig = new AppConfig();
}
_appConfig.CopyTo(appConfig);
}
}