void LoadData() { var refs = new ReferenceTable(); var lessees = (LesseeManager)FindResource("LesseeData"); var properties = (PropertyManager)FindResource("PropertyData"); var projects = (ProjectManager)FindResource("ProjectData"); var projectinfo = (ProjectInfoCollection)FindResource("ProjectInfo"); var serializer = (Serializer)FindResource("Serializer"); Xml.Read(Settings.PropertyFilepath, properties, refs, serializer.IdTable); Xml.Read(Settings.LesseeFilepath, lessees, refs, serializer.IdTable); projectinfo.Scan(Settings.ProjectPath, serializer.IdTable); refs.Update(serializer.IdTable); }
public void TestDeserialise() { var id = new IdTable(); var refs = new ReferenceTable(); var props = new PropertyManager(); var lessees = new LesseeManager(); var projects = new ProjectManager(); Xml.Read("D:\\Projects\\Olivia2\\Olivia2.Persistence.Test\\Properties.xml", props, refs, id); Xml.Read("D:\\Projects\\Olivia2\\Olivia2.Persistence.Test\\Lessees.xml", lessees, refs, id); Xml.Read("D:\\Projects\\Olivia2\\Olivia2.Persistence.Test\\Abrechnung 2011.xml", projects, refs, id); refs.Update(id); Equals(props[0].Name, "Haus1"); Equals(props[0].Flats[0].Name, "Wohnung A"); Equals(projects.Current.Assignments[0].Flat, props[0].Flats[0]); }
public OpenProject() { InitializeComponent(); SetValue(ProjectSelectedProperty, false); ProjectList.SelectionChanged += (o, e) => { SetValue(ProjectSelectedProperty, ProjectList.SelectedItems != null); }; OpenButton.Click += (_, __) => { var refs = new ReferenceTable(); var filepath = ((ProjectInfo)ProjectList.SelectedItem).Filepath; var projects = (ProjectManager)FindResource("ProjectData"); var ids = ((Serializer)FindResource("Serializer")).IdTable; Xml.Read(filepath, projects, refs, ids); refs.Update(ids); projects.Current.Result.Calculate(); MainWindow.ActiveTask = 7; }; }
public static void Read(string filepath, ProjectManager projects, ReferenceTable references, IdTable ids) { var xml = new XPathDocument(filepath).CreateNavigator(); var project = new Project(); var pnode = xml.SelectSingleNode("/Project"); ids[project] = new Guid(pnode.GetAttribute("id", "")); AssignProperties(pnode, project, references); references.Update(ids);// force Project.Property assignment var aci = pnode.Select("Assignments/FlatAssignmentCollection"); while ( aci.MoveNext() ) { var acnode = aci.Current; var flatid = acnode.SelectSingleNode("Flat").Value; var collection = project.Assignments.First(ac => ids[ac.Flat].ToString() == flatid); ids[collection] = new Guid(acnode.GetAttribute("id", "")); AssignProperties(acnode, collection, references); var ai = acnode.Select("FlatAssignment"); while ( ai.MoveNext() ) { var anode = ai.Current; var a = new FlatAssignment(project); ids[a] = new Guid(anode.GetAttribute("id", "")); AssignProperties(anode, a, references); collection.Add(a); } } references.Update(ids);// force Assignments for CostOptions generation var ci = pnode.Select("Costs/Cost"); while ( ci.MoveNext() ) { var cnode = ci.Current; var c = project.CreateCost(); ids[c] = new Guid(cnode.GetAttribute("id", "")); AssignProperties(cnode, c, references); var oi = cnode.Select("Options/CostOptions"); while ( oi.MoveNext() ) { var onode = oi.Current; var lesseeid = onode.SelectSingleNode("Lessee").Value; var option = c.Options.First(o => ids[o.Lessee].ToString() == lesseeid); ids[option] = new Guid(onode.GetAttribute("id", "")); AssignProperties(onode, option, references); } } projects.Add(project); }