Example #1
0
        /// <summary>
        /// Listen for detachment request by nurse.
        /// </summary>
        private void ListenForDetachmentRequest()
        {
            // Listen for proper disconnection
            while (!ListenForDetachmentRepeat())
            {
            }

            BabyMonitors.Clear();
            DetachmentRequest();
        }
Example #2
0
        /// <summary>
        /// Broadcast the caretaker for all nurse's to see and listen for a baby monitor to attach.
        /// </summary>
        public string Broadcast()
        {
            if (!HasBabyMonitor())
            {
                // Start broadcast
                _firstBroadcast = false;
                _isBroadcasting = true;
                _ = Task.Run(() => _communicator.BroadcastSelf());

                // Get baby monitor
                string babyId = _communicator.GetBabyMonitor();
                BabyMonitors.Add(new Baby(babyId, _communicator));
                _isBroadcasting = false;

                _ = Task.Run(() => ListenForDetachmentRequest());
                return(babyId);
            }

            return(string.Empty);
        }