예제 #1
0
        internal async Task WriteMetadataAsync(HttpContext httpContext, ODataRequest req)
        {
            var content = ODataMiddleware.LoadContentByVersionRequest(req.RepositoryPath, httpContext);

            //var isRoot = content?.ContentType.IsInstaceOfOrDerivedFrom("Site") ?? true;
            var isRoot   = content == null;
            var metadata = isRoot
                ? MetaGenerator.GetMetadata()
                : MetaGenerator.GetMetadata(content, req.IsCollection);

            var mimeType = this.MimeType;

            if (mimeType != null)
            {
                httpContext.Response.ContentType = mimeType;
            }

            await WriteMetadataAsync(httpContext, metadata);
        }
예제 #2
0
파일: EnumType.cs 프로젝트: kimduquan/DMIS
        public void WriteChoiceXml(TextWriter writer)
        {
            writer.Write("      <EnumType");
            WriteAttribute(writer, "Name", Name);
            WriteAttribute(writer, "UnderlyingType", MetaGenerator.GetPrimitivePropertyType(typeof(string)));
            WriteAttribute(writer, "IsFlags", UnderlyingFieldSetting.AllowMultiple.ToString().ToLower());
            writer.WriteLine(">");
            var options = UnderlyingFieldSetting.Options;

            if (options != null)
            {
                foreach (var option in options)
                {
                    writer.Write("        <Member");
                    WriteAttribute(writer, "Name", option.Text);
                    WriteAttribute(writer, "Value", option.Value);
                    writer.WriteLine("/>");
                }
            }
            writer.WriteLine("      </EnumType>");
        }
예제 #3
0
파일: EnumType.cs 프로젝트: kimduquan/DMIS
        public void WriteEnumXml(TextWriter writer)
        {
            var isFlags = UnderlyingEnumType.GetCustomAttributes(typeof(FlagsAttribute), true).Length > 0;
            var names   = Enum.GetNames(UnderlyingEnumType);
            var values  = Enum.GetValues(UnderlyingEnumType);

            writer.Write("      <EnumType");
            WriteAttribute(writer, "Name", Name);
            WriteAttribute(writer, "UnderlyingType", MetaGenerator.GetPrimitivePropertyType(Enum.GetUnderlyingType(UnderlyingEnumType)));
            WriteAttribute(writer, "IsFlags", isFlags.ToString().ToLower());
            writer.WriteLine(">");

            for (int i = 0; i < names.Length; i++)
            {
                writer.Write("        <Member");
                WriteAttribute(writer, "Name", names[i]);
                WriteAttribute(writer, "Value", Convert.ChangeType(values.GetValue(i), Enum.GetUnderlyingType(UnderlyingEnumType)).ToString());
                writer.WriteLine("/>");
            }

            writer.WriteLine("      </EnumType>");
        }