Ejemplo n.º 1
0
        private void OnRoomFilterVariableChanged(Guid?guid)
        {
            if (guid == null)
            {
                SelectedRoomFilter = allRoomFilter;
            }
            else
            {
                medicalPracticeRepository.RequestMedicalPractice(
                    medicalPractice =>
                {
                    Application.Current.Dispatcher.Invoke(() =>
                    {
                        var room = medicalPractice.GetRoomById(guid.Value);

                        selectedRoomFilter = new RoomSelectorData(room.Name, room.Id, room.DisplayedColor);
                        PropertyChanged.Notify(this, nameof(SelectedRoomFilter));
                    });
                },
                    displayedMedicalPracticeVariable.Value,
                    selectedDateVariable.Value,
                    errorCallback
                    );
            }
        }
Ejemplo n.º 2
0
        public bool CheckSelectionValidity(RoomSelectorData data)
        {
            if (appointmentModificationsVariable.Value == null || data == allRoomFilter)
            {
                return(true);
            }

            return(data.RoomId != null &&
                   currentMedicalPractice.GetRoomById(data.RoomId.Value)
                   .TherapyPlaces
                   .Select(therapyPlace => therapyPlace.Id)
                   .Contains(appointmentModificationsVariable.Value.CurrentLocation.TherapyPlaceId));
        }
        private void CheckSelection(object sender, SelectionChangedEventArgs e)
        {
            var roomSelectorViewModel = AssociatedObject.DataContext as RoomFilterViewModel;

            if (e.AddedItems.Count > 0 && e.AddedItems[0] != previousSelection)
            {
                var valid = roomSelectorViewModel?.CheckSelectionValidity((RoomSelectorData)e.AddedItems[0]);

                if (valid != null && valid.Value)
                {
                    previousSelection = roomSelectorViewModel.SelectedRoomFilter;
                }

                if (valid != null && !valid.Value)
                {
                    AssociatedObject.SelectedItem = previousSelection;
                }
            }

            e.Handled = true;
        }