/// <summary>
        /// Write Open API server variable object.
        /// </summary>
        /// <param name="writer">The Open API Writer.</param>
        public virtual void Write(IOpenApiWriter writer)
        {
            if (writer == null)
            {
                throw Error.ArgumentNull("writer");
            }

            // { for JSON, empty for YAML
            writer.WriteStartObject();

            // default
            writer.WriteRequiredProperty(OpenApiConstants.OpenApiDocDefault, Default);

            // description
            writer.WriteOptionalProperty(OpenApiConstants.OpenApiDocDescription, Description);

            // enums
            if (Enums != null && Enums.Any())
            {
                writer.WritePropertyName(OpenApiConstants.OpenApiDocEnum);
                writer.WriteStartArray();
                foreach (string item in Enums)
                {
                    writer.WriteValue(item);
                }
                writer.WriteEndArray();
            }

            // specification extensions
            writer.WriteDictionary(Extensions);

            // } for JSON, empty for YAML
            writer.WriteEndObject();
        }
Exemple #2
0
        // ReSharper disable once UnusedMember.Local
        private void ConnectionStringMustExist(ValidationContext context)
        {
            if (!Classes.Any() && !Enums.Any())
            {
                return;
            }

            if (string.IsNullOrEmpty(ConnectionString) && string.IsNullOrEmpty(ConnectionStringName))
            {
                context.LogWarning("Model: Default connection string missing", "MRWConnectionString", this);
            }

            if (string.IsNullOrEmpty(EntityContainerName))
            {
                context.LogError("Model: Entity container needs a name", "MREContainerNameEmpty", this);
            }
        }
Exemple #3
0
 internal string GetDotNetType(string typeName, bool required = true)
 {
     if (typeMappings.ContainsKey(typeName))
     {
         var type = typeMappings[typeName];
         return(type + (!required && Nullables.Contains(type, StringComparer.OrdinalIgnoreCase) ? "?" : ""));
     }
     if (Types.ContainsKey(typeName))
     {
         return(Types[typeName].Name);
     }
     if (Enums.Any(e => e.Name == typeName))
     {
         return(typeName + (required ? "" : "?"));
     }
     return(Inputs[typeName].Name);
 }
Exemple #4
0
        protected string FormatEnums()
        {
            if (Enums == null || !Enums.Any())
            {
                return(String.Empty);
            }

            string output = String.Empty;

            foreach (var scriptEnum in Enums)
            {
                try
                {
                    // And add a empty line between all enums!
                    output += "\r\n" + scriptEnum.Decompile() + "\r\n";
                }
                catch
                {
                    output += String.Format("\r\nFailed at decompiling enum: {0}", scriptEnum.Name);
                }
            }
            return(output);
        }
Exemple #5
0
 internal bool HasDotNetType(string typeName)
 {
     return(typeMappings.ContainsKey(typeName) || Types.ContainsKey(typeName) || Inputs.ContainsKey(typeName) || Enums.Any(e => e.Name == typeName));
 }