public SwaggerEndpointConfigurationViewModel(
     SwaggerEndpointConfiguration config,
     bool isNewEndpoint,
     bool isDeletedEndpoint,
     bool isUpdatedEndpoint)
 {
     Config            = config;
     IsNewEndpoint     = isNewEndpoint;
     IsDeletedEndpoint = isDeletedEndpoint;
     IsUpdatedEndpoint = isUpdatedEndpoint;
 }
        private List <SwaggerEndpointConfiguration> LoadEndpointsConfiguration(
            List <JsonProperty> endpointConfigs,
            IEnumerable <EndpointModelDefinition> endpointModelDefinitions)
        {
            List <SwaggerEndpointConfiguration> endpoints = new List <SwaggerEndpointConfiguration>();

            foreach (var endpointConfig in endpointConfigs)
            {
                var    requestMethodWithEndpointInfo = JsonSerializer.Deserialize <Dictionary <string, object> >(endpointConfig.Value.GetRawText()).FirstOrDefault();
                string requestMethod = requestMethodWithEndpointInfo.Key;

                SwaggerEndpointConfiguration endpointConfiguration = JsonSerializer.Deserialize <SwaggerEndpointConfiguration>(requestMethodWithEndpointInfo.Value.ToString());
                endpointConfiguration.Url        = endpointConfig.Name;
                endpointConfiguration.HttpMethod = requestMethod;

                foreach (var param in endpointConfiguration.Parameters)
                {
                    if (param.In == "body" && param.Schema != null && param.Schema.Ref != null)
                    {
                        string modelName = param.Schema.Ref.Replace("#/definitions/", string.Empty);

                        var properties = endpointModelDefinitions
                                         .FirstOrDefault(e => e.Name == modelName)
                                         ?.Properties
                                         ?.ToList();

                        if (properties != null)
                        {
                            endpointConfiguration.Properties.Add(param.Name, properties);
                        }
                    }
                }

                endpoints.Add(endpointConfiguration);
            }

            return(endpoints);
        }
 public static void SetEndpoint(this SwaggerUIOptions options, SwaggerEndpointConfiguration configuration)
 {
     options.SwaggerEndpoint(configuration.Url, configuration.Name);
 }