private async Task InitializeAsync(string language) { _menuCache ??= new ConcurrentCache <string, ValueTask <DemoMenuItem[]> >(); await _menuCache.GetOrAdd(language, async (currentLanguage) => { var menuItems = await _httpClient.GetFromJsonAsync <DemoMenuItem[]>(new Uri(_baseUrl, $"_content/AntDesign.Docs/meta/menu.{language}.json").ToString()); return(menuItems); }); _componentCache ??= new ConcurrentCache <string, ValueTask <IDictionary <string, DemoComponent> > >(); await _componentCache.GetOrAdd(language, async (currentLanguage) => { var components = await _httpClient.GetFromJsonAsync <DemoComponent[]>(new Uri(_baseUrl, $"_content/AntDesign.Docs/meta/components.{language}.json").ToString()); return(components.ToDictionary(x => x.Title.ToLower(), x => x)); }); _demoMenuCache ??= new ConcurrentCache <string, ValueTask <DemoMenuItem[]> >(); await _demoMenuCache.GetOrAdd(language, async (currentLanguage) => { var menuItems = await _httpClient.GetFromJsonAsync <DemoMenuItem[]>(new Uri(_baseUrl, $"_content/AntDesign.Docs/meta/demos.{language}.json").ToString()); return(menuItems); }); _docMenuCache ??= new ConcurrentCache <string, ValueTask <DemoMenuItem[]> >(); await _docMenuCache.GetOrAdd(language, async (currentLanguage) => { var menuItems = await _httpClient.GetFromJsonAsync <DemoMenuItem[]>(new Uri(_baseUrl, $"_content/AntDesign.Docs/meta/docs.{language}.json").ToString()); return(menuItems); }); }
public async Task InitializeDemos() { if (_showCaseCache == null) { _showCaseCache = new ConcurrentCache <string, RenderFragment>(); var baseUrl = _navigationManager.ToAbsoluteUri(_navigationManager.BaseUri); var demoTypes = await _httpClient.GetFromJsonAsync <string[]>(new Uri(baseUrl, $"_content/AntDesign.Docs/meta/demos.json").ToString()); foreach (var type in demoTypes) { _showCaseCache.GetOrAdd(type, t => { void ShowCase(RenderTreeBuilder builder) { var showCase = Type.GetType($"{Assembly.GetExecutingAssembly().GetName().Name}.{type}"); builder.OpenComponent(0, showCase); builder.CloseComponent(); } return(ShowCase); }); } } }
public RenderFragment GetShowCase(string type) { _showCaseCache ??= new ConcurrentCache <string, RenderFragment>(); return(_showCaseCache.GetOrAdd(type, t => { var showCase = Type.GetType($"{Assembly.GetExecutingAssembly().GetName().Name}.{type}"); void ShowCase(RenderTreeBuilder builder) { builder.OpenComponent(0, showCase); builder.CloseComponent(); } return ShowCase; })); }
private async Task InitializeAsync() { _componentCache ??= new ConcurrentCache <string, ValueTask <IDictionary <string, DemoComponent> > >(); await _componentCache.GetOrAdd(CurrentLanguage, async (currentLanguage) => { var baseUrl = _navigationManager.ToAbsoluteUri(_navigationManager.BaseUri); var components = await _httpClient.GetFromJsonAsync <DemoComponent[]>( new Uri(baseUrl, $"_content/AntDesign.Docs/meta/demo.{CurrentLanguage}.json").ToString()); return(components.ToDictionary(x => x.Title.ToLower(), x => x)); }); _menuCache ??= new ConcurrentCache <string, ValueTask <DemoMenuItem[]> >(); await _menuCache.GetOrAdd(CurrentLanguage, async (currentLanguage) => { var baseUrl = _navigationManager.ToAbsoluteUri(_navigationManager.BaseUri); var menuItems = await _httpClient.GetFromJsonAsync <DemoMenuItem[]>( new Uri(baseUrl, $"_content/AntDesign.Docs/meta/menu.{CurrentLanguage}.json").ToString()); return(menuItems); }); }