/// <summary> /// Pobiera z bazy danych informacje o wskazanym pracowniku. /// </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_Workers, /// null jeżeli nie znaleziono pracownika odpowiadającego podanym warunkom lub podany argument to null. /// </returns> public A_Worker SelectWorker(System.Linq.Expressions.Expression <Func <A_Worker, bool> > predicate) { A_Worker entity = null; if (predicate != null) { db = new MedicalCenterDBContainer(); entity = db.A_Workers.FirstOrDefault(predicate); db.Dispose(); } return(entity); }
/// <summary> /// Sprawdza w bazie danych podane poświadczenia. /// Jeśli znaleziono w bazie odpowiadającego użytkownika, pobierane są również jego imię, nazwisko oraz nazwa i kod stanowiska. /// Informacje te zapisywane są w obiekcie wskazywanym przez argument. /// </summary> /// <param name="user">Obiekt zawierający podany login i hash hasła. Wartość null powoduje, że ta metoda nie wykonuje żadnej akcji.</param> public void LogIn(User user) { if (user != null) { // sprawdzenie czy w systemie istnieje użytkownik o podanym loginie i hashu hasła A_User usr = userService.SelectUser(x => x.Login == user.Login && x.Password == user.Password); // jeśli podane poświadczenia są prawidłowe if (usr != null && usr.WorkerId > 0) { // jeśli konto jest aktywne if (usr.Expires == null || usr.Expires.Value > DateTime.Today) { // pobranie informacji o pracowniku, do którego przypisany jest sprawdzony użytkownik systemu A_Worker wrk = userService.SelectWorker(x => x.Id == usr.WorkerId); // jeśli rekord użytkownika w bazie zawiera prawidłowe ID pracownika if (wrk.Id > 0) { // zapisanie ID pracownika user.Id = usr.WorkerId; // pobranie informacji o stanowisku służbowym pracownika A_DictionaryJobTitle job = userService.SelectJobTitle(x => x.Id == wrk.JobTitle); // jeśli rekord pracownika w bazie zawiera prawidłowe ID stanowiska if (job.Id > 0) { // zapisanie imienia, nazwiska i nazwy stanowiska user.Title = job.JobTitle + " - " + wrk.LastName + " " + wrk.FirstName; // zapisanie kodu stanowiska user.JobTitleCode = job.Code; } } } // jeśli konto zostało dezaktywowane, ID pracownika zostaje przypisana wartość -1, co jest rozpoznawane w prezenterze formularza logowania else { user.Id = -1; } } } }
/// <summary> /// Pobiera z bazy danych informacje o wybranym pracowniku, zwraca jego nazwisko i imię. /// </summary> /// <param name="workerId">ID pracownika, którego dane mają zostać pobrane.</param> /// <returns>Oddzielone spacją nazwisko i imię wskazanego pracownika lub null, jeśli nie znaleziono pracownika o podanym ID.</returns> public string GetWorkerName(int workerId) { if (workerId > 0) { A_Worker worker = userService.SelectWorker(x => x.Id == workerId); if (worker == null) { return(null); } else { return(worker.LastName + " " + worker.FirstName); } } else { return(null); } }