// Pobranie danych do zapisu z bazy danych
        private DataTable GetDataForFile()
        {
            TextfileConstructorParams tfc_params = GetParamsFromUI();

            textfileConstructor.SetParams(tfc_params);

            Zajecia zajecia = (Zajecia)CourseComboBox.SelectedItem;

            if (zajecia == null)
            {
                MessageBox.Show("Prosze wybrać zajęcia.");
                return(null);
            }
            else
            {
                Zajecia z = (Zajecia)CourseComboBox.SelectedItem;

                switch (CheckExportType())
                {
                case ExportType.GRID:
                    return(databaseController.Obecni_pomiedzy(conjuring, connection, zajecia, tfc_params.DateFrom, tfc_params.DateTo));

                case ExportType.TABLE:
                    var list = databaseController.GetObecnosc(conjuring, connection)
                               .Where(o => o.Data >= tfc_params.DateFrom && o.Data <= tfc_params.DateTo)
                               .Where(o => o.Zajecia_pojedyncze.Id_Zajec == z.Id_Zajec)
                               .OrderBy(o => o.Data).ToList();
                    return(textfileConstructor.ConstructObecnoscList(list));

                default:
                    return(null);
                }
            }
        }
        //Dodawanie nowych zajęć
        public void InsertZajecia(TheConjuring_dbEntities1 conjuring, SqlConnection connection, Wykladowca wykladowca, Przedmiot przedmiot, Sala sala, DateTime data, bool tydzien)
        {
            connection.Open();
            var query = conjuring.Zajecia.Where(o => (o.Id_Przedmiotu == przedmiot.Id_Przedmiotu && o.Id_Sali == sala.Id_Sali && o.Id_Wykladowcy == wykladowca.Id_Wykladowcy && o.Tydzien == tydzien && o.Czas == data)).FirstOrDefault();

            if (query != null)
            {
                MessageBox.Show("Takie zajecia juz istnieja w bazie");
                connection.Close();
                return;
            }

            Zajecia zajecia = new Zajecia()
            {
                Id_Przedmiotu = przedmiot.Id_Przedmiotu,
                Id_Sali       = sala.Id_Sali,
                Czas          = data,
                Tydzien       = tydzien,
                Id_Wykladowcy = wykladowca.Id_Wykladowcy
            };

            conjuring.Zajecia.Add(zajecia);
            conjuring.SaveChanges();
            connection.Close();
            MessageBox.Show("Dodano poprawnie zajecia przedmiot - " + przedmiot.Nazwa + " w sali " + sala.Numer + " w budynku " + sala.Budynek);

            this.InsertZajeciaPojedyncze(conjuring, connection, zajecia);
        }
Exemplo n.º 3
0
        private void btn_szukaj_obecnosci_Click(object sender, EventArgs e)
        {
            Zajecia_pojedyncze zajecia_Pojedyncze = new Zajecia_pojedyncze();
            Zajecia_pojedyncze zajecia_Zedytowane = new Zajecia_pojedyncze();
            Zajecia            zajecia = new Zajecia();
            DateTime           data_od, data_do;

            //Przygotowanie daty w zakresie której będzie sprawdzana obecność
            data_od = cb_data_od.Value;
            data_do = cb_data_do.Value;

            if (cb_przedmiot_przegladanie.Text == "")
            {
                MessageBox.Show("Wypełnij pola!");
            }
            else
            {
                zajecia = (Zajecia)cb_przedmiot_przegladanie.SelectedItem;

                lista_zajec_pojedynczych       = databaseController.Pojedyncz_od_do(conjuring, cb_data_od.Value, cb_data_do.Value, zajecia, wykladowca);
                dgv_lista_obecnosci.DataSource = FillDataTable(lista_zajec_pojedynczych);
            }
        }
        public void InsertZajeciaPojedyncze(TheConjuring_dbEntities1 conjuring, SqlConnection connection, Zajecia zajecia)
        {
            DateTime semestr_letni  = new DateTime(DateTime.Now.Year, 6, 30);
            DateTime semestr_zimowy = new DateTime(DateTime.Now.Year + 1, 1, 30);
            DateTime datyZajec      = (DateTime)zajecia.Czas;

            if (zajecia.Czas < semestr_letni)
            {
                while (datyZajec < semestr_letni)
                {
                    Zajecia_pojedyncze zajecia_Pojedyncze = new Zajecia_pojedyncze
                    {
                        Id_Zajec   = zajecia.Id_Zajec,
                        Data_zajec = datyZajec
                    };
                    connection.Open();
                    conjuring.Zajecia_pojedyncze.Add(zajecia_Pojedyncze);
                    conjuring.SaveChanges();
                    connection.Close();
                    if (zajecia.Tydzien == false)
                    {
                        datyZajec = datyZajec.AddDays(7);
                    }
                    else
                    {
                        datyZajec = datyZajec.AddDays(14);
                    }
                }
            }
            else
            {
                while (datyZajec < semestr_zimowy)
                {
                    Zajecia_pojedyncze zajecia_Pojedyncze = new Zajecia_pojedyncze
                    {
                        Id_Zajec   = zajecia.Id_Zajec,
                        Data_zajec = datyZajec
                    };
                    connection.Open();
                    conjuring.Zajecia_pojedyncze.Add(zajecia_Pojedyncze);
                    conjuring.SaveChanges();
                    connection.Close();
                    if (zajecia.Tydzien == false)
                    {
                        datyZajec = datyZajec.AddDays(7);
                    }
                    else
                    {
                        datyZajec = datyZajec.AddDays(14);
                    }
                }
            }
        }
        //zwraca listę zajec pojedynczych od do. Wykorzystywane do edycji zajec pojedynczych
        public List <Zajecia_pojedyncze> Pojedyncz_od_do(TheConjuring_dbEntities1 conjuring, DateTime data_od, DateTime data_do, Zajecia zaj, Wykladowca wyk)
        {
            List <Zajecia_pojedyncze> lista = (from z in conjuring.Zajecia
                                               join zp in conjuring.Zajecia_pojedyncze on z.Id_Zajec equals zp.Id_Zajec
                                               join w in conjuring.Wykladowca on z.Id_Wykladowcy equals w.Id_Wykladowcy

                                               where zp.Data_zajec > data_od && zp.Data_zajec < data_do && z.Id_Zajec == zaj.Id_Zajec

                                               select zp).Distinct().ToList();

            return(lista);
        }
        //Zwraca Table obecnych uczniów pomiędz podanymi datami na danych zajeciach
        public DataTable Obecni_pomiedzy(TheConjuring_dbEntities1 conjuring, SqlConnection connection, Zajecia zajecia, DateTime od_, DateTime do_)
        {
            DataTable dt = new DataTable();

            dt.Columns.Add("Imie i nazwisko");
            dt.Columns.Add("indeks");

            List <Student> qTyp = new List <Student>();

            qTyp = (from z in conjuring.Zajecia
                    join zp in conjuring.Zajecia_pojedyncze on zajecia.Id_Zajec equals zp.Id_Zajec
                    join o in conjuring.Obecnosc on zp.Id_Zajec_pojedynczych equals o.Id_Zajec_pojedynczych
                    join s in conjuring.Student on o.Indeks equals s.Indeks
                    where zp.Data_zajec >= od_ && zp.Data_zajec <= do_
                    orderby s.Indeks
                    select s).Distinct().ToList();

            foreach (var s in qTyp)
            {
                DataRow new_row = dt.NewRow();
                new_row["Imie i nazwisko"] = s.Imie + " " + s.Nazwisko;
                new_row["indeks"]          = s.Indeks;
                dt.Rows.Add(new_row);
            }

            List <Zajecia_pojedyncze> Zajeciapoj = new List <Zajecia_pojedyncze>();

            Zajeciapoj = (from z in conjuring.Zajecia
                          join zp in conjuring.Zajecia_pojedyncze on zajecia.Id_Zajec equals zp.Id_Zajec
                          where zp.Data_zajec >= od_ && zp.Data_zajec <= do_
                          orderby zp.Id_Zajec_pojedynczych
                          select zp).Distinct().OrderBy(z => z.Data_zajec).ToList();
            int x = 1, y = 0;

            foreach (var zp in Zajeciapoj)
            {
                try
                {
                    dt.Columns.Add(zp.Data_zajec.ToString("MM/d"));
                }
                catch (Exception ex)
                {
                    continue;
                }

                x++;
                foreach (var s in qTyp)
                {
                    var query = conjuring.Obecnosc.Where(o => o.Indeks == s.Indeks && o.Id_Zajec_pojedynczych == zp.Id_Zajec_pojedynczych).FirstOrDefault();
                    if (query != null)
                    {
                        if (query.Spoznienie == true)
                        {
                            dt.Rows[y][x] = "S";
                        }
                        else
                        {
                            dt.Rows[y][x] = "O";
                        }
                    }
                    else
                    {
                        dt.Rows[y][x] = "N";
                    }
                    y++;
                }
                y = 0;
            }

            return(dt);
        }