public static void Read(string filepath, LesseeManager lessees, ReferenceTable references, IdTable ids) { var xml = new XPathDocument(filepath).CreateNavigator(); var li = xml.Select("/Lessees/Lessee"); var list = new List <Lessee>(); while (li.MoveNext()) { var lnode = li.Current; var l = new Lessee(); ids[l] = new Guid(lnode.GetAttribute("id", "")); AssignProperties(lnode, l, references); var pi = lnode.Select("Payments/AdvancePayment"); while (pi.MoveNext()) { var pnode = pi.Current; var p = new AdvancePayment(); ids[p] = new Guid(pnode.GetAttribute("id", "")); AssignProperties(pnode, p, references); l.Payments.Add(p); } list.Add(l); } foreach (var i in list.OrderBy(item => item.Name)) { lessees.Add(i); } }
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 static void Write(LesseeManager lessees, string filepath, IdTable ids) { var f = new XmlWriter(filepath); f.Begin("Lessees"); var list = new Lessee[lessees.Count]; lock ( lessees ) lessees.CopyTo(list, 0); foreach ( var l in list ) { f.Begin(l, ids); f.Begin("Payments"); var paymentlist = new AdvancePayment[l.Payments.Count]; lock ( l.Payments ) l.Payments.CopyTo(paymentlist, 0); foreach ( var p in paymentlist ) f.Write(p, ids); f.End("Payments"); f.End(l); } f.End("Lessees"); f.Close(); }
public void TestSerialise() { var id = new IdTable(); var props = new PropertyManager(); var lessees = new LesseeManager(); Xml.Write(props, "Properties.xml", id); Xml.Write(lessees, "Lessees.xml", id); var projects = new ProjectManager(); projects.Add(new Project()); projects.Current.Property = props[0]; projects.Current.CreateCost(); var fac = projects.Current.Assignments.First(a => a.Flat == props[0].Flats[0]); var assignment = new FlatAssignment(projects.Current); assignment.Start = DateTime.Now; assignment.End = DateTime.Now.AddMonths(3); assignment.Lessee = lessees[0]; fac.Add(assignment); Xml.Write(projects, "", id); }
public static void Write(LesseeManager lessees, string filepath, IdTable ids) { var f = new XmlWriter(filepath); f.Begin("Lessees"); var list = new Lessee[lessees.Count]; lock (lessees) lessees.CopyTo(list, 0); foreach (var l in list) { f.Begin(l, ids); f.Begin("Payments"); var paymentlist = new AdvancePayment[l.Payments.Count]; lock (l.Payments) l.Payments.CopyTo(paymentlist, 0); foreach (var p in paymentlist) { f.Write(p, ids); } f.End("Payments"); f.End(l); } f.End("Lessees"); f.Close(); }
public static void Read(string filepath, LesseeManager lessees, ReferenceTable references, IdTable ids) { var xml = new XPathDocument(filepath).CreateNavigator(); var li = xml.Select("/Lessees/Lessee"); var list = new List<Lessee>(); while ( li.MoveNext() ) { var lnode = li.Current; var l = new Lessee(); ids[l] = new Guid(lnode.GetAttribute("id", "")); AssignProperties(lnode, l, references); var pi = lnode.Select("Payments/AdvancePayment"); while ( pi.MoveNext() ) { var pnode = pi.Current; var p = new AdvancePayment(); ids[p] = new Guid(pnode.GetAttribute("id", "")); AssignProperties(pnode, p, references); l.Payments.Add(p); } list.Add(l); } foreach (var i in list.OrderBy(item => item.Name)) lessees.Add(i); }
public void OnNewItem(object sender, ExecutedRoutedEventArgs e) { lock (LesseeManager) Lessee = LesseeManager.Create(); Lessee.Payments.Add(new AdvancePayment(DateTime.MinValue, 0)); }
public void OnRemoveItem(object sender, ExecutedRoutedEventArgs e) { lock (LesseeManager) LesseeManager.Remove(Lessee); }