///<summary> /// Load the prevgen files, using the given controller to get the path to load them from. ///</summary> ///<param name="controller"></param> public void LoadPrevGenFiles(IWorkbenchProjectController controller) { PrevGenUtility utility = new PrevGenUtility(); string stagingFolder = controller.GetTempFilePathForComponent(ComponentKey.SlyceMerge_PrevGen); if (Directory.Exists(stagingFolder)) { Utility.DeleteDirectoryBrute(stagingFolder); } if (Directory.GetDirectories(controller.CurrentProject.ProjectSettings.OutputPath, ".ArchAngel", SearchOption.AllDirectories).Length != 0) { // New Way utility.CopyUserPrevGenFiles(controller.CurrentProject.ProjectSettings.OutputPath, stagingFolder, controller.CurrentProject.ProjectSettings.ProjectGuid); LoadPreviousVersionMD5s(controller); } else if (Slyce.Common.Utility.GetFiles(controller.CurrentProject.ProjectSettings.OutputPath, "*.aaz", SearchOption.AllDirectories).Count != 0) { // Old way //utility.CopyPrevGenFiles_AAZ(controller.CurrentProject.ProjectSettings.ProjectPath, stagingFolder); //controller.AAZFound = true; } foreach (ProjectFileTreeNode node in allNodes) { if (node.IsFolder == false) { node.AssociatedFile.LoadPrevGenFile(controller.GetTempFilePathForComponent(ComponentKey.SlyceMerge_PrevGen)); } } }
protected void ClearScratchFolder() { lock (SCRATCH_FOLDER) { if (Directory.Exists(SCRATCH_FOLDER)) { Directory.Delete(SCRATCH_FOLDER, true); } Directory.CreateDirectory(SCRATCH_FOLDER); utility = new PrevGenUtility(); } }
private static void LoadMD5sForNode(ProjectFileTreeNode node, string dir) { if (node.IsFolder == false) { return; } string manifestFile = System.IO.Path.Combine(dir, ManifestConstants.MANIFEST_FILENAME); if (File.Exists(manifestFile) == false) { return; } XmlDocument doc = new XmlDocument(); try { doc.Load(manifestFile); } catch (Exception) { return; } foreach (ProjectFileTreeNode childNode in node.ChildNodes) { if (childNode.AssociatedFile != null) { string userMD5, templateMD5, prevgenMD5; PrevGenUtility.GetMD5sForFile(doc, System.IO.Path.GetFileName(childNode.Path), out prevgenMD5, out templateMD5, out userMD5); childNode.AssociatedFile.SetPreviousVersionMD5s(prevgenMD5, templateMD5, userMD5); } else if (childNode.IsFolder) { LoadMD5sForNode(childNode, System.IO.Path.Combine(dir, childNode.Text)); } } }