Files
Yi.Framework/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/GateStartBuilder.cs
chenchun f5fb2ea17b 重构代码
重构代码
2022-04-02 17:44:50 +08:00

44 lines
1.7 KiB
C#

using System.Linq;
using System.Text;
namespace Yi.Framework.OcelotGateway.Builder
{
public static class GateStartBuilder
{
public static void Run(DataContext dataContext)
{
Handler(dataContext);
//基础
AbstractBuilder whitelistBuilder = new WhiteListBuilder();
AbstractBuilder tokenBuilder = new TokenBuilder();
AbstractBuilder refreshBuilder = new RefreshBuilder();
AbstractBuilder accoutBuilder = new AccoutBuilder();
//额外
AbstractBuilder tenantBuilder = new TenantBuilder();
AbstractBuilder userWhitelist = new UserWhitelistBuilder();
//最终
AbstractBuilder menuBuilder = new MenuBuilder();
whitelistBuilder.SetNext(tokenBuilder);
tokenBuilder.SetNext(refreshBuilder);
refreshBuilder.SetNext(accoutBuilder);
accoutBuilder.SetNext(tenantBuilder);
tenantBuilder.SetNext(userWhitelist);
userWhitelist.SetNext(menuBuilder);
whitelistBuilder.Invoke(dataContext);
}
public static void Handler(DataContext dataContext)
{
dataContext.Path = dataContext.Path!.ToUpper();
dataContext.RefreshPath = dataContext.RefreshPath!.ToUpper();
dataContext.WhitePathList = dataContext.WhitePathList!.Select(white => white.ToUpper()).ToList();
dataContext.AccountPathList = dataContext.AccountPathList!.Select(white => white.ToUpper()).ToList();
dataContext.TenantPathList = dataContext.TenantPathList!.Select(white => white.ToUpper()).ToList();
}
}
}