/// <summary> /// Loads the project. /// </summary> /// <param name="project">The project.</param> private void LoadProject(GenerateProject project) { CloseProject(); switch (project.ProjectType) { case ProjectType.Assembly: _assemblyManager.LoadProject(project); _activeManager = _assemblyManager; break; case ProjectType.PD: _pdManager.LoadProject(project); _activeManager = _pdManager; break; case ProjectType.Schema: _schemaManager.LoadProject(project); _activeManager = _schemaManager; break; default: throw new ArgumentOutOfRangeException(); } }
/// <summary> /// News the project. /// </summary> /// <param name="type">The type.</param> public GenerateProject NewProject(ProjectType type) { GenerateProject project = new GenerateProject(); project.ProjectType = type; LoadProject(project); return(project); }
public void Execute() { var cmd = new GenerateProject { Name = "ShinyNewProject1" }; var zipBytes = cmd.Execute(); var originalFolder = @"..\..\.."; var buildFolder = Path.Combine(Path.GetTempPath(), "GpTmp"); Console.WriteLine("Building project {0} in {1}", cmd.Name, buildFolder); Unzip(zipBytes, buildFolder); Directory.GetFiles(Path.Combine(buildFolder, "ShinyNewProject1.Web/fonts")).Length.Should().BeGreaterThan(1, "should copy fonts"); Directory.GetFiles(Path.Combine(buildFolder, "ShinyNewProject1.Web/Content")).Length.Should().BeGreaterThan(1, "should copy css"); CopyFolder(@"..\..\..\packages", Path.Combine(buildFolder, "packages")); var currentSettings = File.ReadAllText(Path.Combine(originalFolder, "Lucid.Web/settings.config")); File.WriteAllText(Path.Combine(buildFolder, "ShinyNewProject1.Web/settings.config"), currentSettings.Replace("Lucid", "ShinyNewProject1")); var fxFolder = @"C:\Program Files (x86)\MSBuild\14.0\Bin\"; var setupCmd = File.ReadAllText(Path.Combine(buildFolder, "CommandPrompt.bat")); setupCmd.Should().Contain(fxFolder); var lastReadmeCharBefore = LastCharOfFile(Path.Combine(originalFolder, "readme.txt")); var lastReadmeCharAfter = LastCharOfFile(Path.Combine(buildFolder, "readme.txt")); lastReadmeCharBefore.Should().Be(10); lastReadmeCharAfter.Should().Be(lastReadmeCharBefore, "trailing lines in readme.txt should be maintained (and last line should be empty)"); File.ReadAllText(Path.Combine(buildFolder, "ShinyNewProject1.Web\\ShinyNewProject1.Web.csproj")).Should().Contain("349c5851-65df-11da-9384-00065b846f21", "ProjectTypeGuids should not be replaced"); var processedFiles = Directory.EnumerateFiles(buildFolder, "*.*", SearchOption.AllDirectories) .Where(d => Generate.ShouldProcessFile(d)); foreach (var processedFile in processedFiles) foreach (var line in File.ReadAllLines(processedFile)) if (Path.GetFileName(processedFile) != "GenerateProjectTests.cs" && line.ToLower().Contains("Lucid")) Assert.Fail("Found [Dd]emo in {0}: {1}", processedFile, line); var originalGuids = FindGuids(originalFolder); var newGuids = FindGuids(buildFolder); newGuids.Count.Should().BeGreaterThan(1); foreach (var originalGuid in originalGuids) if (newGuids.Contains(originalGuid)) Assert.Fail("GUID {0} was found in both the original project and the generated project", originalGuid); var msBuild = Path.Combine(fxFolder, "msbuild.exe"); RunVerify(msBuild, "ShinyNewProject1.proj", buildFolder); // Assert DB? NUnit logs? RunVerify(msBuild, "ShinyNewProject1.proj /t:clean", buildFolder); DeleteFolder(buildFolder, 5); }
/// <summary> /// Loads the project. /// </summary> /// <param name="projectFileName">Name of the project file.</param> public void LoadProject(String projectFileName) { LoadProject(GenerateProject.Load(projectFileName)); currentSettings.AddRecentProject(projectFileName); }
private ActionResult GenerateRender(GenerateProject cmd) { var model = new GenerateModel { Cmd = cmd }; return View(model); }
public ActionResult Generate(GenerateProject cmd) { return Exec(cmd, success: r => File(r, "application/zip", cmd.Name + ".zip"), failure: () => GenerateRender(cmd)); }
public ActionResult Generate() { var initialCmd = new GenerateProject { Name = "Demo" }; return GenerateRender(initialCmd); }