コード例 #1
0
ファイル: TemplateStep.cs プロジェクト: JoeHosman/sharpDox
        private void CreateMethodFiles()
        {
            foreach (var nameSpace in _repository.GetAllNamespaces())
            {
                foreach (var type in nameSpace.Types)
                {
                    var sdType = _repository.GetTypeByIdentifier(type.Identifier);

                    var constructorsIndexHtmlFile = Path.Combine(_tmpFilepath, sdType.Guid + "-Constructors.html");
                    var constructorsTemplate = new ConstructorsTemplate { ProjectInfo = _repository.ProjectInfo, SDNamespace = nameSpace, SDType = sdType, CurrentLanguage = _currentLanguage, Strings = _strings };
                    File.WriteAllText(constructorsIndexHtmlFile, constructorsTemplate.TransformText());

                    var methodsIndexHtmlFile = Path.Combine(_tmpFilepath, sdType.Guid + "-Methods.html");
                    var methodsTemplate = new MethodsTemplate { ProjectInfo = _repository.ProjectInfo, SDNamespace = nameSpace, SDType = sdType, CurrentLanguage = _currentLanguage, Strings = _strings };
                    File.WriteAllText(methodsIndexHtmlFile, methodsTemplate.TransformText());

                    foreach (var method in sdType.Methods)
                    {
                        var methodHtmlFile = Path.Combine(_tmpFilepath, method.Guid + ".html");
                        var template = new MethodTemplate { ProjectInfo = _repository.ProjectInfo, SDNamespace = nameSpace, SDMethod = method, SDType = sdType, CurrentLanguage = _currentLanguage, Strings = _strings };

                        if (!method.IsSequenceDiagramEmpty())
                        {
                            method.GetSequenceDiagram(_repository.GetAllTypes()).ToPng(Path.Combine(_tmpFilepath, "diagrams", method.Guid + ".png"));
                        }

                        File.WriteAllText(methodHtmlFile, template.TransformText());
                    }

                    foreach (var constructor in sdType.Constructors)
                    {
                        var constructorHtmlFile = Path.Combine(_tmpFilepath, constructor.Guid + ".html");
                        var template = new MethodTemplate { ProjectInfo = _repository.ProjectInfo, SDNamespace = nameSpace, SDMethod = constructor, SDType = sdType, CurrentLanguage = _currentLanguage, Strings = _strings };

                        if (!constructor.IsSequenceDiagramEmpty())
                        {
                            constructor.GetSequenceDiagram(_repository.GetAllTypes()).ToPng(Path.Combine(_tmpFilepath, "diagrams", constructor.Guid + ".png"));
                        }

                        File.WriteAllText(constructorHtmlFile, template.TransformText());
                    }
                }
            }
        }
コード例 #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());
                        }
                    }
                }
            }
        }