private void ResultView_CellClick(object sender, DataGridViewCellEventArgs e)       //kiedy klikam komorke w gridview moich zawodow/druzyn
        {
            var loggedUserType   = LoggedUserUtility.getCurrentUserType();
            var loggedContestant = LoggedUserUtility.getLoggedContestant();

            if (CompetitionBox.Text == "Lista zawodów")
            {
                DataGridViewTextBoxCell IDcell = (DataGridViewTextBoxCell)CompetitionView.Rows[e.RowIndex].Cells[3];      //cells[3] -> bierzemy dane z kolumny ID
                competitionId = Convert.ToInt32(IDcell.Value);


                CompetitionsTeamsForm competitionsTeamsForm = new CompetitionsTeamsForm(this);
                competitionsTeamsForm.SetWindow("wyścigi", competitionId);

                competitionsTeamsForm.ConfirmButton.Visible = false;
                competitionsTeamsForm.Show();
            }
            else if (CompetitionBox.Text == "Lista wyścigów")
            {
                DataGridViewCell        clickedCell = (DataGridViewCell)CompetitionView.Rows[e.RowIndex].Cells[e.ColumnIndex];
                DataGridViewTextBoxCell raceIdCell  = (DataGridViewTextBoxCell)CompetitionView.Rows[e.RowIndex].Cells[3];  //teamId w 3 kolumnie
                //na podstawie competitionId otworz wyscigi
                if (loggedUserType == LoggedUserUtility.userType.organiser || loggedUserType == LoggedUserUtility.userType.supervisor)
                {
                    CreateDeleteEditForm createDeleteEditForm = new CreateDeleteEditForm(this);
                    if (clickedCell.Value == "Dodaj trasę")
                    {
                        createDeleteEditForm.ModifiedRaceId = Convert.ToInt32(raceIdCell.Value);
                        createDeleteEditForm.SetCreateForm("Podaj trasę wyścigów", "", "", "", "Trasa", "", "", "");
                        createDeleteEditForm.dropDownTracks();
                        createDeleteEditForm.Show();
                    }
                }
                else if (loggedUserType == LoggedUserUtility.userType.captain || loggedUserType == LoggedUserUtility.userType.contestant)
                {
                    if (clickedCell.Value == "Akceptuj")
                    {
                        ContestantDataUtility.acceptRaceInvitation(loggedContestant.id_zawodnik, Convert.ToInt32(raceIdCell.Value));
                        fillWithRaces(CompetitionView, loggedContestant.id_zawodnik, competitionId);
                    }
                }
            }
            else if (CompetitionBox.Text == "Lista drużyn")
            {
                DataGridViewCell        clickedCell = (DataGridViewCell)CompetitionView.Rows[e.RowIndex].Cells[e.ColumnIndex];
                DataGridViewTextBoxCell teamIdCell  = (DataGridViewTextBoxCell)CompetitionView.Rows[e.RowIndex].Cells[3];  //teamId w 3 kolumnie
                if (clickedCell.Value == "Akceptuj")
                {
                    ContestantDataUtility.acceptTeamInvitation(loggedContestant.id_zawodnik, Convert.ToInt32(teamIdCell.Value));
                    fillWithInvitations(CompetitionView, loggedContestant.id_zawodnik);
                }
            }
        }
        internal void SetWindow(string kind, int competitionId = 0)
        {
            var type = LoggedUserUtility.getCurrentUserType();

            if (kind == "zawody")
            {
                CompetitionBox.Text   = "Lista zawodów";
                ConfirmButton.Visible = false;
                if (type == LoggedUserUtility.userType.contestant || type == LoggedUserUtility.userType.captain)
                {
                    fillWithAttendedCompetitions(CompetitionView, LoggedUserUtility.getLoggedContestant().id_zawodnik);
                }
                else if (type == LoggedUserUtility.userType.supervisor || type == LoggedUserUtility.userType.organiser)
                {   //wyswietlanie zawodow zarzadzanych przez organizatora/opiekuna
                    List <zawody> competitions       = LoggedUserUtility.getEmployeesCompetitions(LoggedUserUtility.getLoggedEmployee().id_pracownik);
                    var           competitionsAccept = competitions.Select(x => new { Nazwa = x.nazwa, Akcja = "Akceptuj" }).ToList();
                    CompetitionView.DataSource = competitions.Select(x => new { Nazwa = x.nazwa, competitionId = x.id_zawody }).ToList();
                }
            }
            else if (kind == "druzyny")  //done
            {
                CompetitionBox.Text   = "Lista drużyn";
                ConfirmButton.Visible = false;

                fillWithInvitations(CompetitionView, LoggedUserUtility.getLoggedContestant().id_zawodnik);
            }
            else
            {
                CompetitionBox.Text = "Lista wyścigów";

                ConfirmButton.Visible = false;
                if (type == LoggedUserUtility.userType.contestant || type == LoggedUserUtility.userType.captain)  //wyswietlanie wyscigow w ktorych bierze udzial/jest zaproszony zawodnik
                {
                    fillWithRaces(CompetitionView, LoggedUserUtility.getLoggedContestant().id_zawodnik, competitionId);
                    //TODO po kliknieciu zaakceptowane update _zawodnik_wyscig
                }
                else if (type == LoggedUserUtility.userType.supervisor || type == LoggedUserUtility.userType.organiser) // wyscigi ktorymi zarzadzaja organizator/opiekun
                {
                    var races = CompetitionDataUtility.getRacesInCompetition(competitionId);
                    CompetitionView.DataSource = races.AsEnumerable().Select((x, index) => new { Nazwa = "Wyścig nr. " + (index + 1), Akcja = "Dodaj trasę", competitionId = x.id_wyscig }).ToList();  //idwyscig czy dobrze
                    //po kliknieciu przejscie do edycji trasy wyscigu
                }
            }
            CompetitionView.ClearSelection();
            CompetitionView.CurrentCell = null;
        }