예제 #1
0
        private static object FormatAsJson(IExamplesProvider provider)
        {
            var examples = new Dictionary <string, object>
            {
                {
                    "application/json", provider.GetExamples()
                }
            };

            return(ConvertToCamelCase(examples));
        }
        private static object FormatAsJson(IExamplesProvider provider, JsonSerializerSettings serializerSettings)
        {
            var examples = new Dictionary <string, object>
            {
                {
                    "application/json", provider.GetExamples()
                }
            };

            return(ConvertToDesiredCase(examples, serializerSettings));
        }
        private static object FormatAsJson(IExamplesProvider provider, IContractResolver resolver)
        {
            var examples = new Dictionary <string, object>
            {
                {
                    "application/json", provider.GetExamples()
                }
            };

            return(ConvertToDesiredCase(examples, resolver));
        }
예제 #4
0
        private static object FormatJson(IExamplesProvider provider, JsonSerializerSettings serializerSettings, bool includeMediaType)
        {
            var stringwriter = new System.IO.StringWriter();
            var serializer   = new XmlSerializer(typeof(T));

            serializer.Serialize(stringwriter, provider.GetExamples());

            object examples;

            if (includeMediaType)
            {
                if (typeof(T).Name.ToLowerInvariant().Contains("atom"))
                {
                    examples = new Dictionary <string, object>
                    {
                        {
                            "application/atom+json", provider.GetExamples()
                        },
                        {
                            "application/atom+xml", stringwriter.ToString()
                        }
                    };
                }
                else
                {
                    examples = new Dictionary <string, object>
                    {
                        {
                            "application/json", provider.GetExamples()
                        },
                        {
                            "application/xml", stringwriter.ToString()
                        }
                    };
                }
            }
            else
            {
                examples = provider.GetExamples();
            }



            var jsonString = JsonConvert.SerializeObject(examples, serializerSettings);
            var result     = JsonConvert.DeserializeObject(jsonString);

            return(result);
        }
예제 #5
0
        private static object FormatJson(IExamplesProvider provider, JsonSerializerSettings serializerSettings, bool includeMediaType)
        {
            object examples;

            if (includeMediaType)
            {
                examples = new Dictionary <string, object>
                {
                    {
                        "application/json", provider.GetExamples()
                    }
                };
            }
            else
            {
                examples = provider.GetExamples();
            }

            var jsonString = JsonConvert.SerializeObject(examples, serializerSettings);
            var result     = JsonConvert.DeserializeObject(jsonString);

            return(result);
        }
예제 #6
0
        private static object FormatAsJson(IExamplesProvider provider)
        {
            var examples = new Dictionary <string, object>
            {
                {
                    "application/json", provider.GetExamples()
                }
            };

            JsonSerializerSettings settings = new JsonSerializerSettings()
            {
                //ContractResolver = new CamelCasePropertyNamesContractResolver(),
                Converters = new List <JsonConverter>()
                {
                    new Newtonsoft.Json.Converters.StringEnumConverter()
                },
                NullValueHandling = NullValueHandling.Ignore,
                //DefaultValueHandling = DefaultValueHandling.Ignore
            };

            var jsonString = JsonConvert.SerializeObject(examples, settings);

            return(JsonConvert.DeserializeObject(jsonString));
        }
예제 #7
0
        private static void SetResponseModelExamples(Operation operation, ApiDescription apiDescription)
        {
            var responseAttributes = apiDescription.ActionAttributes().OfType <SwaggerResponseExampleAttribute>();

            foreach (var attr in responseAttributes)
            {
                var statusCode = ((int)attr.StatusCode).ToString();

                var response = operation.Responses.FirstOrDefault(r => r.Key == statusCode);

                if (response.Equals(default(KeyValuePair <string, Response>)) == false)
                {
                    if (response.Value != null)
                    {
                        IExamplesProvider provider = (IExamplesProvider)Activator.CreateInstance(attr.ExamplesProviderType);

                        var serializerSettings = new JsonSerializerSettings {
                            ContractResolver = new CamelCasePropertyNamesContractResolver(), Formatting = Formatting.Indented, NullValueHandling = NullValueHandling.Ignore, DefaultValueHandling = DefaultValueHandling.Ignore
                        };
                        response.Value.Examples = FormatJson(provider, serializerSettings, true);
                    }
                }
            }
        }
예제 #8
0
 public TaskModelExample(IExamplesProvider <LocationModel> locationExample) => this.locationExample = locationExample;