Beispiel #1
0
        public static string AsFriendlyName(this Type type, PostmanFeature feature)
        {
            var parts    = type.Name.SplitOnFirst('`');
            var typeName = parts[0].LeftPart('[');
            var suffix   = "";

            var nullableType = Nullable.GetUnderlyingType(type);

            if (nullableType != null)
            {
                typeName = nullableType.Name;
                suffix   = "?";
            }
            else if (type.IsArray)
            {
                suffix = "[]";
            }
            else if (type.IsGenericType)
            {
                var args = type.GetGenericArguments().Map(x =>
                                                          x.AsFriendlyName(feature));
                suffix = $"<{string.Join(",", args.ToArray())}>";
            }

            return(feature.FriendlyTypeNames.TryGetValue(typeName, out var friendlyName)
                ? friendlyName + suffix
                : typeName + suffix);
        }
Beispiel #2
0
        public string GetName(PostmanFeature feature, Postman request, Type requestType, string virtualPath)
        {
            var fragments = request.Label ?? feature.DefaultLabelFmt;
            var sb        = StringBuilderCache.Allocate();

            foreach (var fragment in fragments)
            {
                var parts     = fragment.ToLower().Split(':');
                var asEnglish = parts.Length > 1 && parts[1] == "english";

                if (parts[0] == "type")
                {
                    sb.Append(asEnglish ? requestType.Name.ToEnglish() : requestType.Name);
                }
                else if (parts[0] == "route")
                {
                    sb.Append(virtualPath);
                }
                else
                {
                    sb.Append(parts[0]);
                }
            }
            return(StringBuilderCache.ReturnAndFree(sb));
        }