44 lines
1.7 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|