public LazyLoadedProjection(Func <T> factory) { this.factory = factory; var definition = new T(); Consumes = definition.Consumes; AsyncOptions = definition.AsyncOptions; Produces = (definition as IDocumentsProjection)?.Produces; if (Produces?.Any() != true && definition is IDocumentProjection documentProjection) { Produces = new[] { documentProjection.Produces } } ; }
//public List<Security> security { get; set; } public void Serialize(JsonWriter writer) { writer.WritePropertyName(Id); writer.WriteStartObject(); if (Tags != null && Tags.Any()) { writer.WritePropertyName("tags"); writer.WriteStartArray(); foreach (string tag in Tags) { writer.WriteValue(tag); } writer.WriteEndArray(); } if (!string.IsNullOrWhiteSpace(Summary)) { writer.WritePropertyName("summary"); writer.WriteValue(Summary); } if (!string.IsNullOrWhiteSpace(Description)) { writer.WritePropertyName("description"); writer.WriteValue(Description); } if (ExternalDocs != null) { writer.WritePropertyName("externalDocs"); ExternalDocs.Serialize(writer); } if (!string.IsNullOrWhiteSpace(OperationId)) { writer.WritePropertyName("operationId"); writer.WriteValue(OperationId); } if (Consumes != null && Consumes.Any()) { writer.WritePropertyName("consumes"); writer.WriteStartArray(); foreach (string cons in Consumes) { writer.WriteValue(cons); } writer.WriteEndArray(); } if (Produces != null && Produces.Any()) { writer.WritePropertyName("produces"); writer.WriteStartArray(); foreach (string prod in Produces) { writer.WriteValue(prod); } writer.WriteEndArray(); } if (Parameters != null && Parameters.Any()) { writer.WritePropertyName("parameters"); writer.WriteStartArray(); foreach (ParameterBase p in Parameters) { p.Serialize(writer); } writer.WriteEndArray(); } if (Responses != null && Responses.Any()) { writer.WritePropertyName("responses"); writer.WriteStartObject(); foreach (Response r in Responses) { r.Serialize(writer); } writer.WriteEndObject(); } if (Schemes != null && Schemes.Any()) { writer.WritePropertyName("schemes"); writer.WriteStartArray(); foreach (string sch in Schemes) { writer.WriteValue(sch); } writer.WriteEndArray(); } if (Deprecated) { writer.WritePropertyName("deprecated"); writer.WriteValue(Deprecated); } writer.WriteEndObject(); }