Example #1
0
        static public TireDataSet Load(Stream reader)
        {
            var             data            = new TireDataSet();
            BinaryFormatter binaryFormatter = new BinaryFormatter();

            using (ZipArchive archive = new ZipArchive(reader, ZipArchiveMode.Read, false))
            {
                var corneringTableEntry            = archive.GetEntry("CorneringTable");
                var driveBrakeTableEntry           = archive.GetEntry("DriveBrakeTable");
                var transientTableEntry            = archive.GetEntry("TransientTable");
                var transientTableIndexHolderEntry = archive.GetEntry("TransientTableIndexHolder");
                var MaxminEntry = archive.GetEntry("Maxmin");

                using (Stream s = corneringTableEntry.Open())
                {
                    data.CorneringTable = binaryFormatter.Deserialize(s) as List <TireData>;
                    if (data.CorneringTable == null)
                    {
                        data.CorneringTable = new List <TireData>();
                    }
                }
                using (Stream s = driveBrakeTableEntry.Open())
                {
                    data.DriveBrakeTable = binaryFormatter.Deserialize(s) as List <TireData>;
                    if (data.DriveBrakeTable == null)
                    {
                        data.DriveBrakeTable = new List <TireData>();
                    }
                }
                using (Stream s = transientTableEntry.Open())
                {
                    data.TransientTable = binaryFormatter.Deserialize(s) as List <TireData>;
                    if (data.TransientTable == null)
                    {
                        data.TransientTable = new List <TireData>();
                    }
                }
                using (Stream s = transientTableIndexHolderEntry.Open())
                {
                    data.TransientTableIndexHolder = binaryFormatter.Deserialize(s) as List <int>;
                    if (data.TransientTableIndexHolder == null)
                    {
                        data.TransientTableIndexHolder = new List <int>();
                    }
                }
                if (MaxminEntry != null)
                {
                    using (Stream s = MaxminEntry.Open())
                    {
                        data.MaxminSet = binaryFormatter.Deserialize(s) as TireDataMaxminSet;
                        data.GetLimitDataAll();
                        if (data.MaxminSet == null)
                        {
                            data.GetLimitDataAll();
                        }
                    }
                }
                else
                {
                    data.GetLimitDataAll();
                }
            }

            return(data);
        }