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 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(); } }