private void dialog() { lock (_objLock) { try { messageToClient("[" + GetDatetime() + "] Server: Velkommen til Power Ranger Auktionen!\n" + "[" + GetDatetime() + "] Server: Lige nu byder vi på denne lækre vare: " + _product.Name + "(" + _product.MinPrice + ")" + _product.Description); _service.BroadCastEvent += this.broadcastAction; while (_runningDialog) { _clientInput = messageFromClient(); Auction auction = new Auction(_clientIP, _product); double bet; if (double.TryParse(_clientInput, out bet)) { string[] split = auction.Bet(bet).Split('#'); if (split[0] == "TRUE") { _service.BroadCastBesked(split[1].ToString()); Thread _newThread = new Thread(new ThreadStart(Auction.Hammerslag)); _newThread.Start(); //Udskriv til console med højeste bud og hvem der fører. Console.WriteLine("#" + _clientIP.Address + ": fører auktionen med " + bet); } else if (split[0] == "FALSE") { messageToClient(split[1].ToString()); } } else if (_clientInput.Trim().ToLower() == "/users") { _service.BroadCastBesked(loadAllClients()); } else if (_clientInput.Trim().ToLower() == "/bye") { messageToClient("/bye"); deleteIpFromList(_clientIP); _service.BroadCastBesked(loadAllClients()); Console.WriteLine("[" + GetDatetime() + "] Server: " + _clientIP.Address + " har forladt auktionen"); _runningDialog = false; closeSocketConnection(); } else { _service.BroadCastBesked("[" + GetDatetime() + "] " + _clientIP.Address + ": " + _clientInput); } } } catch (Exception) { deleteIpFromList(_clientIP); //_service.BroadCastBesked(loadAllClients()); closeSocketConnection(); Console.WriteLine("[" + GetDatetime() + "] Server: " + _clientIP.Address + " har forladt auktionen"); } finally { _service.BroadCastEvent -= this.broadcastAction; } } }