public static void Main(string[] args) { var billing = new BillingSystem.BillingSystem(); var rand = new Random(); for (var i = 0; i < 100; i++) { var customer = new Customer(); customer.SignContract(Ats); } //var customer1 = new Customer(); //var customer2 = new Customer(); //customer2.SignContract(ats); //customer1.SignContract(ats); //customer2.Call(customer1.Terminal.Number); var json = new DataContractJsonSerializer(typeof(AutomaticTelephoneStation)); //using (var fstr = new FileStream("ATS.json", FileMode.OpenOrCreate)) { // json.WriteObject(fstr, ats); //} using (var fstr = new FileStream("ATS.json", FileMode.OpenOrCreate)) { Ats = json.ReadObject(fstr) as AutomaticTelephoneStation; Ats?.SubscribeEvents(); } CallGenerator.Generate(Ats); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Menu()); }
public void SignContract(AutomaticTelephoneStation ats) { Terminal = ats.GiveTerminal(this, new Tariff()); Contract = new Contract(Terminal.Number, new Tariff()); Port = Terminal.Port; ConnectEvent += Port.Connect; DisconnectEvent += Port.Disconnect; }
private static void GenerateCall(AutomaticTelephoneStation ats, ICustomer customer, int number) { var random = new Random(); customer.Call(number); // Calling ats.UsersData.Values .FirstOrDefault(x => x.Terminal.Number == number) ?.Answer(); // Answering at Call Thread.Sleep(50); customer.Reject(); // Rejecting }
private void Monitor_Load(object sender, EventArgs e) { var json = new DataContractJsonSerializer(typeof(AutomaticTelephoneStation)); using (var fstr = new FileStream("ATS.json", FileMode.OpenOrCreate)) { ats = json.ReadObject(fstr) as AutomaticTelephoneStation; } ats = Program.Ats; listBox1.DataSource = ats.UsersData.Values.ToList(); listBox1.DisplayMember = "Name"; foreach (var customer in ats.UsersData.Values) { var lvi = new ListViewItem { Text = customer.Port.ToString() }; switch (customer.Port.State) { case PortState.Connected: lvi.BackColor = Color.Green; lvi.Tag = PortState.Connected; break; case PortState.Disconnected: lvi.BackColor = Color.Red; lvi.Tag = PortState.Disconnected; break; case PortState.Busy: lvi.BackColor = Color.Yellow; lvi.Tag = PortState.Busy; break; default: break; } listView1.Items.Add(lvi); } //listBox2.DataSource = ats.Connections; listBox2.DisplayMember = "Item1"; //listBox3.DataSource = ats.CallHistory; listBox3.DisplayMember = "Info"; var timer = new System.Windows.Forms.Timer(); timer1.Interval = 5; timer1.Start(); Application.DoEvents(); }