Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
        }