public void SaveProject(Project project, string path) { PomXmlDocument pom; string fullPath = Path.GetFullPath(path); // REVIEW: remove project.FullPath = fullPath; if (File.Exists(fullPath)) { pom = new PomXmlDocument(fullPath); project.UpdatePomXml(pom); } else { pom = project.GetPomXml(); } pom.SaveTo(path); // TODO: was translation assembly save // if (_assembly != null) // _assembly.Save(); project.Changed = false; }
public Project LoadProject(string path) { string fullPath = Path.GetFullPath(path); var pom = new PomXmlDocument(fullPath); // load file to document var project = _dataFactory.CreateProject(); project.FullPath = fullPath; project.LoadDataFromXml(pom); return(project); }
private void UpdateXmlFromData(PomXmlDocument pom) { var root = pom.Root; base.SaveToElement(root); pom.SetElementValue("packaging", Packaging); pom.SetElementValue("name", Name); pom.SetElementValue("modelVersion", ModelVersion); //writing parent var parentNode = pom.ReadOrCreateElement("parent"); if (Parent == null) { parentNode.Remove(); } else { ((ParentReference)Parent).SaveToElement(parentNode); } _container.SaveToElement(root); //writing profiles var profileNode = pom.ReadOrCreateElement("profiles"); if (!Profiles.Any()) { profileNode.Remove(); } else { HashSet <PomXmlElement> usedElements = new HashSet <PomXmlElement>(); foreach (Profile prof in Profiles) { var profElement = profileNode.Elements.FirstOrDefault(e => e.ReadElementValue("id") == prof.Id) ?? profileNode.CreateElement("profile"); usedElements.Add(profElement); prof.SaveToElement(profElement); } //delete all profiles elements which are not in the Profiles array foreach (var profElem in profileNode.Elements.Where(e => !usedElements.Contains(e))) { profElem.Remove(); } } }
internal void LoadDataFromXml(PomXmlDocument pom) { if (pom == null) { throw new ArgumentNullException("pom"); } _pom = pom; var root = pom.Root; LoadFromElement(root); Changed = false; }
public void UpdatePomXml(PomXmlDocument pom) // crUd { _pom = pom; UpdateXmlFromData(_pom); }