public ResourceModel(PackageModel package, ResourceModel parent, string name, RestResource discoveryResource)
        {
            Name         = name;
            PropertyName = name.ToMemberName();
            string className = name.ToClassName(package, parent?.Typ.Name) + "Resource";

            Typ = parent is null?Typ.Manual(package.PackageName, className) : Typ.Nested(parent.Typ, className);

            Subresources = discoveryResource.Resources.ToReadOnlyList(pair => new ResourceModel(package, this, pair.Key, pair.Value));
            Methods      = discoveryResource.Methods.ToReadOnlyList(pair => new MethodModel(package, this, pair.Key, pair.Value));
        }
示例#2
0
        public MethodModel(PackageModel package, ResourceModel resource, string name, RestMethod restMethod)
        {
            Package         = package;
            Resource        = resource;
            Name            = name;
            PascalCasedName = name.ToClassName(package, resource.ClassName);
            ParentTyp       = resource?.Typ ?? package.ServiceTyp;
            RequestTyp      = Typ.Nested(ParentTyp, $"{PascalCasedName}Request");
            BodyTyp         = restMethod.Request is object?package.GetDataModelByReference(restMethod.Request.Ref__).GetTypForReference() : null;

            ResponseTyp = restMethod.Response is object?package.GetDataModelByReference(restMethod.Response.Ref__).GetTypForReference() : Typ.Of <string>();

            _restMethod = restMethod;
        }