public override void Write(FileTemplate fileTemplate, IOutput output)
        {
            if (string.IsNullOrEmpty(fileTemplate.Name))
            {
                Logger.Trace("Empty file skipped");
                return;
            }
            if (fileTemplate.Header.Description != null)
            {
                AssemblyName assemblyName = (Assembly.GetEntryAssembly() ?? Assembly.GetCallingAssembly()).GetName();
                fileTemplate.Header.Description = string.Format(fileTemplate.Header.Description, $"{assemblyName.Name} {assemblyName.Version}");
            }
            StaticFileTemplate staticFile = fileTemplate as StaticFileTemplate;

            if (staticFile == null)
            {
                throw new NotImplementedException($"The method {nameof(Write)} for type {fileTemplate.GetType().Name} is not implemented in {this.Name}.");
            }

            FileWriter fileWriter = new FileWriter(this);

            fileWriter.Add(fileTemplate.Header)
            .BreakLine()
            .Add(staticFile.Content, true);

            string fileName = FileSystem.Combine(fileTemplate.RelativePath, fileTemplate.Name);

            output.Write(fileName, fileWriter.ToString());
        }
Example #2
0
        public virtual void Write(FileTemplate fileTemplate, IOutput output)
        {
            if (string.IsNullOrEmpty(fileTemplate.Name))
            {
                Logger.Trace("Empty file skipped");
                return;
            }
            if (fileTemplate.Header.Description != null)
            {
                AssemblyName assemblyName = (Assembly.GetEntryAssembly() ?? Assembly.GetCallingAssembly()).GetName();
                fileTemplate.Header.Description = string.Format(fileTemplate.Header.Description, $"{assemblyName.Name} {assemblyName.Version}");
            }
            FileWriter writer = new FileWriter(this);

            this.WriteHeader(fileTemplate, writer);
            StaticFileTemplate staticFile = fileTemplate as StaticFileTemplate;

            if (staticFile == null)
            {
                this.WriteUsings(fileTemplate, writer);
                this.Write(fileTemplate.Namespaces, writer);
            }
            else
            {
                writer.Add(staticFile.Content, true);
            }
            string fileName = FileSystem.Combine(fileTemplate.RelativePath, this.FormatFileName(fileTemplate.Name, fileTemplate.IsInterface()));

            output.Write(fileName, writer.ToString());
        }