public ITemplate CreateTemplate(string language, string templateName, object model)
        {
            ITemplate template = _defaultFactory.CreateTemplate(language, templateName, model);

            if (templateName.StartsWith("Client.Class.Body"))
            {
                // This gets called before the Class.Body template so use it to get the client template model
                _clientTemplateModel = (CSharpClientTemplateModel)HashObjectProperty.GetValue(model);
            }
            if (templateName.StartsWith("Class.Body"))
            {
                // Get all the operations so we can create proxies in the model objects
                ClassTemplateModel classTemplateModel = (ClassTemplateModel)HashObjectProperty.GetValue(model);
                return(new ClassBodyTemplate(classTemplateModel, _clientTemplateModel));
            }
            if (templateName == "Class.Inheritance")
            {
                // Add IClientModel to the interface list
                return(new ClassInheritanceTemplate(template));
            }
            if (templateName == "Class.Constructor")
            {
                // Changes the constructor to take a NetlifyClient
                ClassTemplateModel classTemplateModel = (ClassTemplateModel)HashObjectProperty.GetValue(model);
                return(new ClassConstructorTemplate(classTemplateModel, _clientSettings));
            }
            return(template);
        }
Ejemplo n.º 2
0
        public void RegisterTemplate(string file, string name, TemplateKind kind)
        {
            if (_templates.ContainsKey(name))
            {
                throw RuntimeException.InvalidArgumentValue(name);
            }

            var template = _factory.CreateTemplate(file, kind);

            _templates.Add(name, template);
        }
Ejemplo n.º 3
0
 public ITemplate CreateTemplate(string package, string template, object model)
 {
     if (model is ClassTemplateModel ctm)
     {
         if (_schema.Definitions.TryGetValue(ctm.Class, out var modelSchema))
         {
             if (modelSchema.ExtensionData != null && modelSchema.ExtensionData.ContainsKey("X-ContractVersion"))
             {
                 var options = new CSharpClassTemplateOptions();
                 if (modelSchema.ExtensionData.TryGetValue("X-ContractName", out var contractName))
                 {
                     options.ContractName = contractName.ToString();
                 }
                 options.ContractVersion =
                     Version.Parse(modelSchema.ExtensionData["X-ContractVersion"].ToString());
                 return(new CSharpClassTemplate(ctm, options));
             }
         }
     }
     return(Default.CreateTemplate(package, template, model));
 }