Example #1
0
        public void SaveToFile(string pOutputDir)
        {
            string functions    = GenerateFunctionCodeBlock();
            string properties   = GeneratePropertiesCodeBlock();
            string internals    = GenerateInternalsCodeBlock();
            string specifics    = GenerateSpecificCodeBlock();
            string constructors = ConstructorsTemplate.GetConstructorsString(Name);
            string ns           = CSharpGenerator.BaseNs;

            if (!Namespace.Equals(""))
            {
                ns += "." + Namespace;
            }
            string nsPath = ns.Replace('.', '/');

            Directory.CreateDirectory(pOutputDir + "/" + nsPath);
            StreamWriter SW = new StreamWriter(pOutputDir + "/" + nsPath + "/" + Name + ".cs");

            List <string> parentList = Name != "SimObject" ? ParentList : null;

            string code = SimObjectTemplate.GetClassString(ns, Name, parentList, constructors, internals, properties, functions, specifics);

            if (Name.Equals("SimObject"))
            {
                code =
                    code.Replace(" : base(pId)", "")
                    .Replace(" : base(pObjPtr)", "")
                    .Replace(" : base(pName)", "")
                    .Replace(" : base(pObjPtr)", "");
            }

            SW.Write(code);
            SW.Close();
        }
Example #2
0
        private void CreateApiIndexFiles()
        {
            foreach (var solution in StepInput.SDProject.Solutions.Values)
            {
                var sdRepository = solution.Repositories.SingleOrDefault(r => r.TargetFx.Identifier == StepInput.CurrentTargetFx.Identifier);
                if (sdRepository != null)
                {
                    foreach (var sdNamespace in sdRepository.GetAllNamespaces())
                    {
                        ExecuteOnStepMessage(string.Format("{0}: {1}", StepInput.ChmStrings.CreateIndexFilesFor, sdNamespace.Fullname));

                        var namespaceHtmlFile = Path.Combine(StepInput.TmpPath, sdNamespace.Guid + ".html");
                        var template          = new NamespaceTemplate {
                            SDNamespace = sdNamespace
                        };
                        File.WriteAllText(namespaceHtmlFile, template.TransformText());

                        foreach (var sdType in sdNamespace.Types)
                        {
                            var fieldsIndexHtmlFile = Path.Combine(StepInput.TmpPath, sdType.Guid + "-Fields.html");
                            var fieldsTemplate      = new FieldsTemplate {
                                SDType = sdType
                            };
                            File.WriteAllText(fieldsIndexHtmlFile, fieldsTemplate.TransformText());

                            var eveIndexHtmlFile = Path.Combine(StepInput.TmpPath, sdType.Guid + "-Events.html");
                            var eventsTemplate   = new EventsTemplate {
                                SDType = sdType
                            };
                            File.WriteAllText(eveIndexHtmlFile, eventsTemplate.TransformText());

                            var propertiesIndexHtmlFile = Path.Combine(StepInput.TmpPath, sdType.Guid + "-Properties.html");
                            var propertiesTemplate      = new PropertiesTemplate {
                                SDType = sdType
                            };
                            File.WriteAllText(propertiesIndexHtmlFile, propertiesTemplate.TransformText());

                            var constructorsIndexHtmlFile = Path.Combine(StepInput.TmpPath, sdType.Guid + "-Constructors.html");
                            var constructorsTemplate      = new ConstructorsTemplate {
                                SDType = sdType
                            };
                            File.WriteAllText(constructorsIndexHtmlFile, constructorsTemplate.TransformText());

                            var methodsIndexHtmlFile = Path.Combine(StepInput.TmpPath, sdType.Guid + "-Methods.html");
                            var methodsTemplate      = new MethodsTemplate {
                                SDType = sdType
                            };
                            File.WriteAllText(methodsIndexHtmlFile, methodsTemplate.TransformText());
                        }
                    }
                }
            }
        }