public MainForm(string login)
        {
            InitializeComponent();
            databaseController  = new DatabaseController();
            textfileConstructor = new TextfileConstructor();

            /*Stworzenie nowego obiektu StudentRecorder*/
            studentRecorder = new StudentRecorder();
            studentRecorder.Initialize();
            CurrentIndex = -1;
            studentRecorder.ReadedWithSuccess += RefreshStudentGridView;

            /*Pobranie imienia i nazwiska zalogowanego*/
            wykladowca = conjuring.Wykladowca.Where(w => w.Login_uz == login).SingleOrDefault();
            lb_imie_nazwisko_zalogowanego.Text = "Zalogowany jako: " + wykladowca.Imie + " " + wykladowca.Nazwisko;

            /* Poprawienie formatu wyświetlania czasu w komórkach - wyświetlanie sekund */
            dgv_lista_studentow.DefaultCellStyle.Format = "dd /MM/yyyy hh:mm:ss";

            /* Wypełnienie comboboxów w zakładce Edytor zajęć*/
            RefreshComboBoxes();

            /* Wypełnienie comboboxów w zakładce Przeglądanie obecności*/
            RefreshComboboxes_PrzegladanieObecnosci();

            /* Odświeżenie listy zajęć w zakładce Edytor zajęć */
            Refresh_dvg_zajecia();
            UstawZajecia();
        }
Exemple #2
0
 public ZajeciaForm(TheConjuring_dbEntities1 conjuring, SqlConnection connection, Wykladowca wykladowca)
 {
     InitializeComponent();
     this.conjuring     = conjuring;
     this.connection    = connection;
     this.wykladowca    = wykladowca;
     databaseController = new DatabaseController();
     RefreshComboboxes_PrzegladanieObecnosci();
 }
        private void Zarejestrujbutton_Click(object sender, EventArgs e)
        {
            SqlConnection            connection = new SqlConnection(@"Data Source=conjuringserv.database.windows.net;Initial Catalog=TheConjuring_db;Integrated Security=False;User ID=Kierownik;Password=KieraS_246;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");
            TheConjuring_dbEntities1 conjuring  = new TheConjuring_dbEntities1();

            string         login = LoginTextBox.Text.Trim();
            string         log   = "Select  Id_wykladowcy from Wykladowca Where Login_uz='" + login + "'";
            SqlDataAdapter sda   = new SqlDataAdapter(log, connection);
            DataTable      table = new DataTable();

            sda.Fill(table);
            if (table.Rows.Count >= 1)
            {
                MessageBox.Show("Uzytkownik o takiej nazwie już istnieje");
                return;
            }
            string haslo, haslo_pon;

            haslo     = HasloTextBox.Text.Trim();
            haslo_pon = Haslo2TextBox.Text.Trim();

            if (haslo_pon != haslo || haslo == "" || haslo_pon == "")
            {
                MessageBox.Show("Hasła różnią się");
                return;
            }

            string imie     = ImieTextBox.Text.Trim();
            string nazwisko = NazwiskoTextBox.Text.Trim();

            haslo = SHA2.GenerateSHA256String(haslo);

            Wykladowca wy = new Wykladowca
            {
                Imie     = imie,
                Nazwisko = nazwisko,
                Login_uz = login,
                Haslo    = haslo
            };

            connection.Open();
            conjuring.Wykladowca.Add(wy);
            conjuring.SaveChanges();
            connection.Close();

            MessageBox.Show("Rejestracja powiodła się");
            this.Close();
        }
        public void Edytuj_Zaj_poj(TheConjuring_dbEntities1 conjuring, Zajecia_pojedyncze zajecia_Pojedyncze, DateTime NowaDataZajec, DateTime NowaGodzinaZajec, Wykladowca wyk)
        {
            try
            {
                var x = (from zp in conjuring.Zajecia_pojedyncze
                         join z in conjuring.Zajecia on zp.Id_Zajec equals z.Id_Zajec
                         join w in conjuring.Wykladowca on z.Id_Wykladowcy equals w.Id_Wykladowcy
                         where zp.Id_Zajec_pojedynczych == zajecia_Pojedyncze.Id_Zajec_pojedynczych && w.Id_Wykladowcy == wyk.Id_Wykladowcy
                         select zp).FirstOrDefault();
                String rec = x.Id_Zajec_pojedynczych + " | " + x.Data_zajec;


                DateTime pom = new DateTime(NowaDataZajec.Year, NowaDataZajec.Month, NowaDataZajec.Day, NowaGodzinaZajec.Hour, NowaGodzinaZajec.Minute, 0, 0);

                x.Data_zajec = pom;

                String recafter = x.Id_Zajec_pojedynczych + " | " + x.Data_zajec;

                DialogResult dr = MessageBox.Show("Czy napewno chcesz zmienić rekord z\n" + rec + "\nna\n" + recafter + " ?", "Potwierdzenie", MessageBoxButtons.YesNo);
                if (dr == DialogResult.Yes)
                {
                    conjuring.SaveChanges();
                    MessageBox.Show("Wiadomość: Zmieniono rekordu.");
                }
                else
                {
                    MessageBox.Show("Wiadomość: Nie zmieniono rekordu.");
                }
            }
            catch (NullReferenceException ex)
            {
                MessageBox.Show("Wyjątek: Rekord nie istnieje w bazie danych.");
            }
        }
        public void Usun_Zaj_poj(TheConjuring_dbEntities1 conjuring, Zajecia_pojedyncze zajecia_Pojedyncze, Wykladowca wyk)
        {
            try
            {
                var x = (from zp in conjuring.Zajecia_pojedyncze
                         where zp.Id_Zajec_pojedynczych == zajecia_Pojedyncze.Id_Zajec_pojedynczych
                         join z in conjuring.Zajecia on zp.Id_Zajec equals z.Id_Zajec
                         join w in conjuring.Wykladowca on z.Id_Wykladowcy equals w.Id_Wykladowcy
                         where zp.Id_Zajec_pojedynczych == zajecia_Pojedyncze.Id_Zajec_pojedynczych && w.Id_Wykladowcy == wyk.Id_Wykladowcy
                         select zp).FirstOrDefault();
                String rec = x.Data_zajec.ToString();

                DialogResult dr = MessageBox.Show("Czy napewno chcesz usunąć zajecia pojedyncze odbywajace się w podanej dacie ?\n" + rec, "Potwierdzenie", MessageBoxButtons.YesNo);
                if (dr == DialogResult.Yes)
                {
                    int c = (from zp in conjuring.Zajecia_pojedyncze
                             join o in conjuring.Obecnosc on zp.Id_Zajec_pojedynczych equals o.Id_Zajec_pojedynczych
                             join z in conjuring.Zajecia on zp.Id_Zajec equals z.Id_Zajec
                             join w in conjuring.Wykladowca on z.Id_Wykladowcy equals w.Id_Wykladowcy
                             where zp.Id_Zajec_pojedynczych == zajecia_Pojedyncze.Id_Zajec_pojedynczych && w.Id_Wykladowcy == wyk.Id_Wykladowcy
                             select o).Distinct().Count();

                    if (c == 0)
                    {
                        conjuring.Zajecia_pojedyncze.Remove(x);
                        conjuring.SaveChanges();
                        MessageBox.Show("Usunieto rekord");
                    }

                    else
                    {
                        MessageBox.Show("Nie można usunąć danych zajęć pojedyńczych, ze względu na to że studenci mają na nich obecność"); return;
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                MessageBox.Show("Wyjątek: Rekord nie istnieje w bazie danych.");
            }
        }
        //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);
        }
        public DataTable Lista_Obecnosci(TheConjuring_dbEntities1 conjuring, SqlConnection connection, DateTime data_od, DateTime data_do, Student student, Wykladowca wyk)
        {
            DataTable dt = new DataTable();

            dt.Columns.Add("Przedmiot");
            dt.Columns.Add("Student");
            dt.Columns.Add("Data");
            dt.Columns.Add("Spóźniony");
            dt.Columns.Add("Notatka");

            var qTyp = (from p in conjuring.Przedmiot
                        join z in conjuring.Zajecia on p.Id_Przedmiotu equals z.Id_Przedmiotu
                        join zp in conjuring.Zajecia_pojedyncze on z.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 z.Id_Wykladowcy == wyk.Id_Wykladowcy && zp.Data_zajec > data_od && zp.Data_zajec < data_do && s.Indeks == student.Indeks
                        select new { Przedmiot_ = p.Nazwa, Student_ = s.Imie + " " + s.Nazwisko, Data_ = zp.Data_zajec, Spoznienie_ = o.Spoznienie, Notatka_ = o.notatka }).Distinct().ToList();

            foreach (var s in qTyp)
            {
                DataRow new_row = dt.NewRow();
                new_row["Przedmiot"] = s.Przedmiot_;
                new_row["Student"]   = s.Student_;
                new_row["Data"]      = s.Data_;
                new_row["Spóźniony"] = s.Spoznienie_;
                new_row["Notatka"]   = s.Notatka_;
                dt.Rows.Add(new_row);
            }
            return(dt);
        }
        // Zwraca list przedmiotów prowadzonych przez prowadzącego
        public List <String> GetSubjects(TheConjuring_dbEntities1 conjuring, SqlConnection connection, Wykladowca wykladowca)
        {
            connection.Open();
            List <Zajecia> lessons  = conjuring.Zajecia.Where(z => z.Wykladowca.Id_Wykladowcy == wykladowca.Id_Wykladowcy).ToList();
            List <String>  subjects = lessons.Select(l => l.Przedmiot.Nazwa).Distinct().ToList();

            connection.Close();
            return(subjects);
        }
        //zwracanie listy przedmiotów zalogowanego
        public List <Przedmiot> ListPrzedmiot_Zalogowanego(TheConjuring_dbEntities1 conjuring, Wykladowca wykladowca)
        {
            List <Przedmiot> qTyp = new List <Przedmiot>();

            qTyp = (from p in conjuring.Przedmiot
                    join z in conjuring.Zajecia on p.Id_Przedmiotu equals z.Id_Przedmiotu
                    join w in conjuring.Wykladowca on z.Id_Wykladowcy equals w.Id_Wykladowcy
                    where w.Id_Wykladowcy == wykladowca.Id_Wykladowcy
                    orderby p.Id_Przedmiotu
                    select p).Distinct().ToList();
            return(qTyp);
        }
        //zwracanie listy zajec wykladowcy
        public List <Zajecia> ListZajec(TheConjuring_dbEntities1 conjuring, SqlConnection connection, Wykladowca wykladowca)
        {
            connection.Open();
            List <Zajecia> qTyp = new List <Zajecia>();

            qTyp = (from z in conjuring.Zajecia where z.Id_Wykladowcy == wykladowca.Id_Wykladowcy orderby z.Id_Sali select z).ToList();
            connection.Close();
            return(qTyp);
        }
        //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);
        }
 public Zajecia_pojedyncze GetNextZajecia_Pojedyncze(TheConjuring_dbEntities1 conjuring, SqlConnection connection, Wykladowca wykladowca)
 {
     try
     {
         connection.Open();
         var zajecia = conjuring.Zajecia.Where(z => z.Id_Wykladowcy == wykladowca.Id_Wykladowcy);
         IQueryable <Zajecia_pojedyncze> zajecia_pojedyncze = null;
         foreach (var z in zajecia)
         {
             zajecia_pojedyncze = conjuring.Zajecia_pojedyncze.Where(zp => zp.Id_Zajec == z.Id_Zajec);
         }
         DateTime           now             = DateTime.Now;
         DateTime           shifted         = now.AddMinutes(15);
         Zajecia_pojedyncze nastepneZajecia = zajecia_pojedyncze.First(nz => nz.Data_zajec.Day == now.Day && nz.Data_zajec > shifted);
         connection.Close();
         return(nastepneZajecia);
     }
     catch (Exception ex) { connection.Close(); return(null); }
 }
        public Zajecia_pojedyncze GetZajecia_Pojedyncze(TheConjuring_dbEntities1 conjuring, SqlConnection connection, Wykladowca wykladowca)
        {
            try
            {
                connection.Open();
                var zajecia = conjuring.Zajecia.Where(z => z.Id_Wykladowcy == wykladowca.Id_Wykladowcy);
                IQueryable <Zajecia_pojedyncze> zajecia_pojedyncze = null;
                foreach (var z in zajecia)
                {
                    zajecia_pojedyncze = conjuring.Zajecia_pojedyncze.Where(zp => zp.Id_Zajec == z.Id_Zajec);
                }


                //var obecneZajecia = zajecia_pojedyncze.Single(oz => oz.Data_zajec >= DateTime.Now.AddMinutes(-5) && oz.Data_zajec <= DateTime.Now.AddMinutes(90));

                DateTime           now           = DateTime.Now;
                DateTime           shifted       = now.AddMinutes(-89);
                DateTime           shifted2      = now.AddMinutes(15);
                Zajecia_pojedyncze obecneZajecia = zajecia_pojedyncze.First(oz => oz.Data_zajec >= shifted && oz.Data_zajec <= shifted2);
                connection.Close();
                return(obecneZajecia);
            }
            catch (Exception ex) { connection.Close(); return(null); }
        }