Example #1
0
        private void ButtonAttachCaretakerClicked(object sender, RoutedEventArgs e)
        {
            // Check if values exist for the baby and caretaker
            if (cbBabies.SelectedIndex == -1 || cbCaretakers.SelectedIndex == -1)
            {
                TriggerAttachmentError();
                return;
            }

            // Get selected baby
            Baby baby = ((cbBabies.SelectedItem as ComboboxItem <Baby>)?.Value);

            // Get selected caretaker
            Caretaker caretaker = ((cbCaretakers.SelectedItem as ComboboxItem <Caretaker>)?.Value);

            // Trigger error if an unknown value was found
            if (baby == null || caretaker == null)
            {
                TriggerAttachmentError();
                return;
            }

            // Attach caretaker to baby monitor
            baby.AssignNurse(_nurse);
            baby.AttachCaretaker(new AddressData(caretaker.Name, caretaker.Address));

            // Start listening for unsubscribe and help requests
            _ = Task.Run(() => ListenForHelpRequest(baby));
            baby.CaretakerUnsubscribed += ct => ListenForUnsubscribe(ct);
        }