/// <summary> /// Ten kod wykonuje się przy naciśnięciu X /// Wysyłamy do Rabbita informacje o wyjściu, aby usunąć naszą ikonkę z mapy /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void CloseApp(object sender, CancelEventArgs e) { InfoOfMe.UserInfo.IsLeaving = true; InfoOfMe.UserInfo.IsNew = false; InfoOfMe.UserInfo.IsUpdated = false; NetworkingHandler.Publisher.Publish(InfoOfMe.UserInfo); RabbitBus.Dispose(); AfkTimer.Dispose(); }
/// <summary> /// Logika przycisku "Connect" /// Funkcja odpowiadająca za łączenie z wysyłaniem i odbieraniem z Rabbita. /// Dodatkowa logika związana z rozłączeniem się i wyłączeniem apki /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ClickConnect(object sender, RoutedEventArgs e) { if (!IsConnected) { if (!CheckConditions()) { return; } if (!IsAnimalPinPlaced) { MessageBox.Show("Pin not placed. Please place a pin on a map before connecting. To place a pin, double click a point on the map.", "Pin not found!", MessageBoxButton.OK, MessageBoxImage.Error); return; } usernameBox.IsEnabled = false; typeBox.IsEnabled = false; IsConnected = true; Publisher.Publish(InfoOfMe.UserInfo); Subscriber.Subscribe(); connButton.Content = "Disconnect"; AfkTimer = new System.Threading.Timer(tmr => HandleAFKs.DeleteAfks(), null, TimeSpan.Zero, TimeSpan.FromMinutes(5)); } else { if (MessageBox.Show("Do you really want to disconnect and exit?", "Should I?", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { InfoOfMe.UserInfo.IsLeaving = true; InfoOfMe.UserInfo.IsNew = false; InfoOfMe.UserInfo.IsUpdated = false; Publisher.Publish(InfoOfMe.UserInfo); RabbitBus.Dispose(); connButton.Content = "Connect"; System.Windows.Application.Current.Shutdown(); } } }
public virtual void Dispose() { RabbitBus.Dispose(); RabbitBus = null; }