Exemple #1
0
        /// <summary>
        /// Pobiera z bazy numer pomieszczenia, do którego przypisany jest/był dany pracownik we wskazanym dniu.
        /// </summary>
        /// <param name="workerId">ID pracownika, którego gabinet ma zostać znaleziony.</param>
        /// <param name="date">
        /// Data, dla której obowiązywać ma przypisanie wskazanego pracownika do poszukiwanego pomieszczenia.
        /// Wartość null powoduje, że ta metoda również zwraca null.
        /// </param>
        /// <returns>
        /// Numer gabinetu,
        /// null jeśli nie gabinetu, nie znaleziono pracownika o podanym ID lub drugi argument to null.
        /// </returns>
        public string GetRoomNumber(int workerId, DateTime date)
        {
            string roomNumber = null;

            if (date != null && workerId > 0)
            {
                // szukanie gabinetu, do którego wskazany pracownik jest/był przypisany w wybranym dniu
                A_DictionaryRoom entity = userService.SelectRoom(x => x.WorkerId == workerId && x.DateFrom <= date && (x.DateTo == null || x.DateTo >= date));

                if (entity != null)
                {
                    roomNumber = entity.Number;
                }
            }

            return(roomNumber);
        }
Exemple #2
0
        /// <summary>
        /// Pobiera z tabeli A_DictionaryRooms rekord, którego id zawiera spełniający podane kryteria rekord z tabeli A_WorkersRooms.
        /// </summary>
        /// <param name="predicate">Funkcja (predykat) sprawdzająca warunek dla każdego elementu. Wartość null powoduje, że ta metoda również zwraca null.</param>
        /// <returns>
        /// Obiekt reprezentujący rekord z tabeli A_DictionaryRooms,
        /// null jeżeli nie znaleziono gabinetu odpowiadającego podanym warunkom lub podany argument to null.
        /// </returns>
        public A_DictionaryRoom SelectRoom(System.Linq.Expressions.Expression <Func <A_WorkersRoom, bool> > predicate)
        {
            // A_DictionaryRoom <---> A_WorkersRoom <---> A_Workers

            if (predicate != null)
            {
                db = new MedicalCenterDBContainer();

                // znalezienie rekordu wiążącego A_Workers.Id z A_DictionaryRoom.Id
                A_WorkersRoom temp = db.A_WorkersRooms.FirstOrDefault(predicate);

                // zwrócenie numeru gabinetu lub null, jeśli nie znaleziono (lub nie znaleziono powiązania między gabinetem a pracownikiem)
                if (temp != null)
                {
                    // pobranie obiektu z numerem telefonu
                    A_DictionaryRoom room = db.A_DictionaryRooms.FirstOrDefault(x => x.Id == temp.RoomId);

                    if (room != null)
                    {
                        // jeśli pobrany wpis był aktualizowany, szukana jest jego najnowsza wersja
                        while (room.New > 0)
                        {
                            room = db.A_DictionaryRooms.FirstOrDefault(x => x.Id == room.New);
                        }

                        // jeśli wpis został oznaczony jako usunięty, zwracany jest null
                        if (room.IsDeleted)
                        {
                            room = null;
                        }
                    }

                    db.Dispose();

                    return(room);
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                return(null);
            }
        }
Exemple #3
0
        /// <summary>
        /// Pobiera z bazy ID poradni, w ramach której przyjmuje/przyjmował dany lekarz we wskazanym dniu.
        /// </summary>
        /// <param name="doctorId">ID lekarza, dla którego poradnia ma zostać znaleziona.</param>
        /// <param name="date">
        /// Data, dla której obowiązywać ma przynależność wskazanego lekarza do poszukiwanej poradni.
        /// Wartość null powoduje, że ta metoda zwraca wartość -1.
        /// </param>
        /// <returns>
        /// ID poradni większe od 0,
        /// 0 jeśli nie znaleziono takiej poradni lub nie znaleziono lekarza o podanym ID,
        /// -1 jeśli drugi argument to null.
        /// </returns>
        public int GetClinicId(int doctorId, DateTime date)
        {
            int clinicId = 0;

            if (date != null && doctorId > 0)
            {
                A_DictionaryRoom entity = userService.SelectRoom(x => x.WorkerId == doctorId && x.DateFrom <= date && (x.DateTo == null || x.DateTo >= date));

                if (entity != null)
                {
                    clinicId = entity.ClinicId;
                }
            }
            else
            {
                clinicId = -1;
            }

            return(clinicId);
        }