Exemplo n.º 1
0
		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();
			}
		}
Exemplo n.º 2
0
 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();
     }
 }