/// <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); } }
/// <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); } }