/// <summary> /// Generates the reprocessing datafile. /// </summary> internal static void GenerateDatafile() { Stopwatch stopwatch = Stopwatch.StartNew(); Util.ResetCounters(); Console.WriteLine(); Console.Write(@"Generating reprocessing datafile... "); List<SerializableItemMaterials> types = new List<SerializableItemMaterials>(); foreach (int typeID in Database.InvTypesTable.Where(x => x.Generated).Select(x => x.ID)) { Util.UpdatePercentDone(Database.ReprocessingTotalCount); List<SerializableMaterialQuantity> materials = Database.InvTypeMaterialsTable.Where( x => x.ID == typeID).Select( srcMaterial => new SerializableMaterialQuantity { ID = srcMaterial.MaterialTypeID, Quantity = srcMaterial.Quantity }).ToList(); if (!materials.Any()) continue; SerializableItemMaterials itemMaterials = new SerializableItemMaterials { ID = typeID }; itemMaterials.Materials.AddRange(materials.OrderBy(x => x.ID)); types.Add(itemMaterials); } // Serialize ReprocessingDatafile datafile = new ReprocessingDatafile(); datafile.Items.AddRange(types); Util.DisplayEndTime(stopwatch); Util.SerializeXml(datafile, DatafileConstants.ReprocessingDatafile); }
/// <summary> /// Generates the reprocessing datafile. /// </summary> private static void GenerateReprocessing() { Console.WriteLine(); Console.Write(@"Generated reprocessing datafile... "); s_counter = 0; s_percentOld = 0; s_text = String.Empty; s_startTime = DateTime.Now; var types = new List<SerializableItemMaterials>(); foreach (int typeID in s_types.Where(x => x.Generated).Select(x => x.ID)) { UpdatePercentDone(s_reprocessGenTotal); var materials = new List<SerializableMaterialQuantity>(); foreach (InvTypeMaterials srcMaterial in s_typeMaterials.Where(x => x.TypeID == typeID)) { materials.Add(new SerializableMaterialQuantity {ID = srcMaterial.MaterialTypeID, Quantity = srcMaterial.Quantity}); } if (materials.Count != 0) { types.Add(new SerializableItemMaterials { ID = typeID, Materials = materials.OrderBy(x => x.ID).ToArray() }); } } s_endTime = DateTime.Now; Console.WriteLine(String.Format(" in {0}", s_endTime.Subtract(s_startTime)).TrimEnd('0')); // Serialize var datafile = new ReprocessingDatafile(); datafile.Items = types.ToArray(); Util.SerializeXML(datafile, DatafileConstants.ReprocessingDatafile); }