@using System.Linq @using ApiGenerator.Domain @using ApiGenerator @using ApiGenerator.Domain.Code @inherits CodeTemplatePage @{ await IncludeGeneratorNotice(); } // ReSharper disable RedundantUsingDirective using System; using System.Threading; using System.Threading.Tasks; using OpenSearch.Client; @{ await IncludeAsync("HighLevel/Client/Usings.cshtml", Model);} @{ var namespaces = Model.EndpointsPerNamespaceHighLevel.Keys.Where(k => k != CsharpNames.RootNamespace).ToList(); // ReSharper disable RedundantTypeArgumentsOfMethod namespace OpenSearch.Client { /// ///OpenSearch high level client /// public partial class OpenSearchClient : IOpenSearchClient { foreach (var ns in namespaces) { ///@(ns.SplitPascalCase()) APIs public @CsharpNames.HighLevelClientNamespacePrefix@(ns)@CsharpNames.ClientNamespaceSuffix @ns { get; private set; } } partial void SetupGeneratedNamespaces() { foreach (var ns in namespaces) { @ns = new @(CsharpNames.HighLevelClientNamespacePrefix)@(ns)@(CsharpNames.ClientNamespaceSuffix)(this); } } foreach (var kv in Model.EndpointsPerNamespaceHighLevel) { if (kv.Key != CsharpNames.RootNamespace) { continue; } var endpoints = kv.Value; var models = endpoints.Select(e=>e.HighLevelModel).ToList(); foreach (var m in models) { await IncludeAsync("HighLevel/Client/Implementation/MethodImplementation.cshtml", m); } } } } }