/// <summary> /// Pobiera z bazy danych informacje o wskazanym stanowisku służbowym. /// </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_DictionaryJobTitles, /// null jeżeli nie znaleziono stanowiska odpowiadającego podanym warunkom lub podany argument to null. /// </returns> public A_DictionaryJobTitle SelectJobTitle(System.Linq.Expressions.Expression <Func <A_DictionaryJobTitle, bool> > predicate) { A_DictionaryJobTitle entity = null; if (predicate != null) { db = new MedicalCenterDBContainer(); entity = db.A_DictionaryJobTitles.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 ID stanowiska określonego podanym kodem. /// </summary> /// <param name="code">Kod stanowiska, którego klucz ma zostać pobrany. Wartość null powoduje, że ta metoda zwraca wartość -1.</param> /// <returns> /// ID stanowiska większe od 0, /// 0 jeśli nie znaleziono stanowiska o podanym kodzie, /// -1 jeśli drugi argument to null. /// </returns> public int GetJobTitleId(string code) { int jobTitleId = 0; if (code != null) { A_DictionaryJobTitle job = userService.SelectJobTitle(x => x.Code.StartsWith(code)); if (job != null) { jobTitleId = job.Id; } } else { jobTitleId = -1; } return(jobTitleId); }