public static void Write(ProjectManager projects, string path, IdTable ids) { foreach ( var p in projects ) { if ( p == Project.Empty ) continue; var f = new XmlWriter(path + p.Name + ".xml"); f.Begin(p, ids); f.Begin("Assignments"); var faclist = new FlatAssignmentCollection[p.Assignments.Count]; lock ( p.Assignments ) p.Assignments.CopyTo(faclist, 0); foreach ( var fac in faclist ) { f.Begin(fac, ids); var falist = new FlatAssignment[fac.Count]; lock ( fac ) fac.CopyTo(falist, 0); foreach ( var fa in falist ) f.Write(fa, ids); f.End(fac); } f.End("Assignments"); f.Begin("Costs"); var costlist = new Cost[p.Costs.Count]; lock ( p.Costs ) p.Costs.CopyTo(costlist, 0); foreach ( var c in costlist ) { f.Begin(c, ids); f.Begin("Options"); var optionslist = new CostOptions[c.Options.Count]; lock ( c.Options ) c.Options.CopyTo(optionslist, 0); foreach ( var o in optionslist ) f.Write(o, ids); f.End("Options"); f.End(c); } f.End("Costs"); f.End(p); f.Close(); } }
public void AddLessee(Lessee l) { if ( options.Count(o => o.Lessee == l) < 1 ) { var o = new CostOptions(this, l); o.PropertyChanged += (s, e) => { if (e.PropertyName == "Amount") { CalculateTotalAmountFromExternal(); } }; options.Add(o); } }
public void AddLessee(Lessee l) { if (options.Count(o => o.Lessee == l) < 1) { var o = new CostOptions(this, l); o.PropertyChanged += (s, e) => { if (e.PropertyName == "Amount") { CalculateTotalAmountFromExternal(); } }; options.Add(o); } }