/// <summary>
 /// Metoda pobierająca tabelę ze zgłoszeniami urlopowymi (i ich właścicielami) wymagającymi zatwierdzenia/odrzucenia
 /// różnego typu w zależności od tego, przej jaki typ formularza została wywołana.
 /// </summary>
 /// <param name="form">Formularz wywołujący.</param>
 /// <returns>Zwraca tabelę zawierającą zgłoszenia urlopowe wymagające zatwierdzenia/odrzucenia.
 /// Tabela zawiera kolumny: "Employee id", "Position", "Name", "Surname", "e-mail", "Leave Id",
 /// "Type", "Status"
 /// "First day", "Last day", "Remarks", "Used days".</returns>
 /// <exception cref="SqlException">An exception occurred while executing the command against a locked row.</exception>
 /// <exception cref="InvalidOperationException">The current state of the connection is closed.</exception>
 /// <exception cref="ArgumentException">Rzucany, gdy formularz nie jest typu, który pozwala na tą operację.</exception>
 private static DataTable GetNeedsAction(LeaveManagerForm form)
 {
     //Zapytanie sql zczytujące zgłoszenia wymagające zatwierdzenia/odrzucenia.
     SqlCommand command = new SqlCommand("SELECT E.Employee_ID AS 'Employee id', P.Description AS 'Position', " +
         "E.Name, E.Surname, E.EMail AS 'e-mail',L.Leave_ID AS 'Leave Id', LT.Name AS 'Type', " +
         "LS.Name AS 'Status', L.First_day AS 'First day', L.Last_day AS 'Last day', L.Remarks, L.Used_days " +
         "AS 'Used days' FROM Employee E, " +
         "Leave L, Leave_type LT, Position P, Status_type LS WHERE L.Employee_ID = E.Employee_ID " +
         "AND L.LT_ID = LT.LT_ID AND P.Position_ID = E.Position_ID AND LS.ST_ID = L.LS_ID AND " +
         "LS.Name = @Name ORDER BY L.First_day", form.Connection);
     //Jeżeli formularz posiada uruchomioną transakcję, to dodaj do niej zapytanie.
     if (form.TransactionOn)
         command.Transaction = form.Transaction;
     //Ustaw parametr nazwy statusu w zależności od typu formularza.
     if (form.GetType() == new FormAssistant().GetType())
     {
         command.Parameters.Add("@Name", SqlDbType.VarChar).Value = "Pending validation";
     }
     else//to znaczy, że manager //todo ładny koment :P
     {
         if (form.GetType() == new FormManager().GetType())
         {
             command.Parameters.Add("@Name", SqlDbType.VarChar).Value = "Pending manager aproval";
         }
         else
         {
             throw new ArgumentException();
         }
     }
     //Stworzenie obiektu czytającego wyniki zapytania.
     SqlDataReader reader = command.ExecuteReader();
     DataTable Result = new DataTable();
     //Zczytanie wyników zapytania do tabeli.
     Result.Load(reader);
     reader.Close();
     return Result;
 }