Esempio n. 1
0
        /// <summary>
        /// Pobiera z bazy danych informacje o wskazanej poradni medycznej. Funkcja ta uwzględnia modyfikacje słownika.
        /// </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 M_DictionaryClinic, odpowiadający szukanej poradni medycznej,
        /// null jeżeli nie znaleziono poradni medycznej odpowiadającej podanym warunkom lub podany argument to null.
        /// </returns>
        public M_DictionaryClinic SelectClinic(System.Linq.Expressions.Expression <Func <M_DictionaryClinic, bool> > predicate)
        {
            if (predicate != null)
            {
                db = new MedicalCenterDBContainer();

                // pobranie encji spełniającej podane kryteria
                M_DictionaryClinic entity = db.M_DictionaryClinics.FirstOrDefault(predicate);

                // jeśli znaleziono encję pasującą do opisu
                if (entity != null)
                {
                    // jeśli wybrana pozycja była aktualizowana, należy znaleźć najnowszą wersję
                    while (entity.New > 0)
                    {
                        entity = db.M_DictionaryClinics.FirstOrDefault(x => x.Id == entity.New);
                    }

                    // jeśli wybrana pozycja została oznaczona jako usunięta, to nie można jej zwrócić
                    if (entity.IsDeleted)
                    {
                        entity = null;
                    }
                }

                db.Dispose();

                return(entity);
            }
            else
            {
                return(null);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Pobiera z bazy danych informacje o wszystkich poradniach medycznych. Funkcja ta uwzględnia modyfikacje słownika.
        /// </summary>
        /// <returns>Zbiór rekordów z tabeli M_DictionaryClinics.</returns>
        public List <M_DictionaryClinic> SelectClinics()
        {
            db = new MedicalCenterDBContainer();

            // wrzucenie całej zawartości tabeli do listy
            List <M_DictionaryClinic> list = db.M_DictionaryClinics.ToList();

            int i    = 0;
            int temp = 0;
            M_DictionaryClinic entity = null;

            // usuwanie z listy referencji do starych i oznaczonych jako usunięte wpisów
            while (i < list.Count)
            {
                entity = list[i];

                // jeśli rekord był aktualizowany
                if (entity.New > 0)
                {
                    temp = i;

                    // szukanie najnowszej wersji
                    while (entity.New > 0)
                    {
                        // przejście do zaktualizowanej wersji rekordu
                        entity = list.FirstOrDefault(x => x.Id == entity.New);
                        // usunięcie starej wersji z listy
                        list.RemoveAt(temp);
                        // zapisanie pozycji nowej wersji na potrzeby następnej iteracji
                        temp = list.IndexOf(entity);
                    }
                }

                // jeśli rekord został oznaczony jako usunięty
                if (entity.IsDeleted)
                {
                    list.RemoveAt(i);
                }
                else
                {
                    ++i;
                }
            }

            // sortowanie listy wg. nazw poradni
            list = list.OrderBy(x => x.Name).ToList();

            return(list);
        }
        /// <summary>
        /// Pobiera nazwę wskazanej poradni medycznej.
        /// </summary>
        /// <param name="clinicId">ID poradni, której nazwa ma zostać pobrana.</param>
        /// <returns>
        /// Nazwa poradni medycznej,
        /// null jeśli nie znaleziono poradni o podanym ID.
        /// </returns>
        public string GetClinicName(int clinicId)
        {
            if (clinicId > 0)
            {
                M_DictionaryClinic clinic = medicalService.SelectClinic(x => x.Id == clinicId);

                if (clinic != null)
                {
                    return(clinic.Name);
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                return(null);
            }
        }