/* * Created by SharpDevelop. * User: allann * Date: 15-11-2004 * Time: 22:55 * */ using System; using System.Collections; using System.IO; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; using System.Windows.Forms; namespace TouristicRental05 { /// /// Description of Shop. /// public class Shop { public Shop() { bicycles = new ArrayList(); rentals = new ArrayList(); } public static void Main() { Shop shop = new Shop(); shop.Init(); Application.Run(new MainForm(shop)); } public void CreateBicyclesFile() { bicycles.Add(new CityBike(1, 3.0, true)); bicycles.Add(new CityBike(2, 3.2, true)); bicycles.Add(new CityBike(11, 3.0, false)); bicycles.Add(new CityBike(12, 2.8, false)); bicycles.Add(new SportsBike(101, 6.0, 3)); bicycles.Add(new SportsBike(102, 6.5, 3)); bicycles.Add(new SportsBike(103, 7.0, 3)); bicycles.Add(new SportsBike(121, 6.2, 5)); bicycles.Add(new SportsBike(122, 6.2, 5)); bicycles.Add(new SportsBike(131, 6.8, 7)); //Declared outside try{} so it can be seen by finally{} FileStream stream = null; try { stream = new FileStream("cykler.dat", FileMode.Create); IFormatter format = new BinaryFormatter(); format.Serialize(stream, bicycles); } catch (SerializationException e) { Console.WriteLine("erialization error. \nReason: " + e.Message); } catch (IOException e) { Console.WriteLine("IO error. \nReason: " + e.Message); } catch (Exception e) { Console.WriteLine("Other error. \nReason: " + e.Message); } finally { if (stream != null) stream.Close(); } } public void Init() { //Declared outside try{} so it can be seen by finally{} FileStream stream = null; try { stream = new FileStream("cykler.dat", FileMode.Open); IFormatter format = new BinaryFormatter(); bicycles = (IList) format.Deserialize(stream); } catch { CreateBicyclesFile(); } finally { if (stream != null) stream.Close(); } } public IList Bikes { get {return bicycles;} } public IList Rentals { get {return rentals;} } public double Sale { get {return sale;} set {sale = value;} } private double sale; private IList rentals; private IList bicycles; } }