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)); }
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; }