class Raykit::DotNet

def self.initialize_csharp_razorclasslib(name)

initialize a C# razor class library
def self.initialize_csharp_razorclasslib(name)
  # create the library
  puts "  creating src/#{name}/#{name}.csproj" unless File.exist?("src/#{name}/#{name}.csproj")
  PROJECT.run("dotnet new razorclasslib -lang C# --name #{name} --output src/#{name}") unless File.exist?("src/#{name}/#{name}.csproj")
  # create the test
  puts "  creating test/#{name}.Test/#{name}.Test.csproj" unless File.exist?("test/#{name}.Test/#{name}.Test.csproj")
  PROJECT.run("dotnet new nunit -lang C# --name #{name}.Test --output test/#{name}.Test") unless File.exist?("test/#{name}.Test/#{name}.Test.csproj")
  PROJECT.run("dotnet add test/#{name}.Test/#{name}.Test.csproj reference src/#{name}/#{name}.csproj") unless File.exist?("test/#{name}.Test/#{name}.Test.csproj")
  # generate project folders
  ["Interfaces", "Extensions", "Models", "Components", "Controllers"].each do |folder|
    FileUtils.mkdir_p("src/#{name}/#{folder}") unless Dir.exist?("src/#{name}/#{folder}")
    FileUtils.mkdir_p("test/#{name}.Test/#{folder}") unless Dir.exist?("test/#{name}.Test/#{folder}")
  end
end