Beispiel #1
0
        public ActionResult Delete(int id, FormCollection collection)
        {
            SeminarDatum seminarDatum = db.SeminarDatum
                                        .Where(sd => sd.Id == id).First();

            db.SeminarDatum.Remove(seminarDatum);
            db.SaveChanges();

            return(RedirectToAction("CreateForKolegij", new { id = seminarDatum.KolegijId }));
        }
Beispiel #2
0
        public ActionResult CreateForKolegij([Bind(Include = "Id,TerminIzlaganja,KolegijId")] SeminarDatum seminarDatum)
        {
            if (ModelState.IsValid)
            {
                SeminarDatum newseminarDatum = db.SeminarDatum.Add(seminarDatum);
                db.SaveChanges();


                return(RedirectToAction("CreateForKolegij", new { id = seminarDatum.KolegijId }));
            }


            return(RedirectToAction("CreateForKolegij", new { id = seminarDatum.KolegijId }));
        }
Beispiel #3
0
        public ActionResult CreateForKolegij(int Id)
        {
            IEnumerable <SeminarDatum> datumKolegij = db.SeminarDatum
                                                      .Where(s => s.KolegijId == Id);

            SeminarDatum seminarDatum = new SeminarDatum {
                KolegijId = Id, TerminIzlaganja = DateTime.Now
            };
            SeminarDatumViewModels seminarDatumViewModels = new SeminarDatumViewModels
            {
                seminarDatum        = seminarDatum,
                seminarDatumKolegij = datumKolegij.ToList()
            };

            return(View(seminarDatumViewModels));
        }
Beispiel #4
0
        public ActionResult Create([Bind(Include = "Id,TerminIzlaganja,KolegijId")] SeminarDatum seminarDatum)
        {
            if (ModelState.IsValid)
            {
                SeminarDatum newseminarDatum = db.SeminarDatum.Add(seminarDatum);
                db.SaveChanges();


                return(RedirectToAction("Index"));
            }


            {
                return(View());
            }
        }
Beispiel #5
0
        // GET: Student/OdaberiKolegij/1
        public ActionResult OdaberiKolegij(int kolegijId)
        {
            string  id      = HttpContext.User.Identity.GetUserId();
            Student student = db.Student.Where(s => s.UserId == id).FirstOrDefault();

            Kolegij odabraniKolegij = db.Kolegij.FirstOrDefault(k => k.Id == kolegijId);
            Tim     timZaKolegij    = db.Tims
                                      .Join(
                db.StudentTims,
                t => t.Id,
                st => st.TimId,
                (t, st) => new { tim = t, studentId = st.StudentId }
                )
                                      .Where(ts => ts.studentId == student.Id)
                                      .Select(ts => ts.tim)
                                      .FirstOrDefault(t => t.KolegijId == odabraniKolegij.Id);

            // Kreiranje timSeminarDatumSeminar koji cemo slati nazad kad student sve odabere kroz formu
            TimSeminarDatumSeminar timSeminarDatumSeminar = new TimSeminarDatumSeminar();

            // Trazenje clanova tek kad postoji napravljen kolegij
            // inace ce ovo dolje 'timZaKolegij.id' baciti gresku jer ne postoji timZaKolegij
            IEnumerable <Student> clanoviTima = new List <Student>();
            Seminar      odabraniSeminar      = null;
            SeminarDatum odabraniSeminarDatum = null;

            if (timZaKolegij != null)
            {
                timSeminarDatumSeminar.TimId = timZaKolegij.Id;

                clanoviTima = db.Student
                              .Join(
                    db.StudentTims,
                    s => s.Id,
                    st => st.StudentId,
                    (s, st) => new { student = s, timId = st.TimId }
                    )
                              .Where(st => st.timId == timZaKolegij.Id)
                              .Select(st => st.student)
                              .ToList();

                // Pronci Seminar ako smo već odabrali
                odabraniSeminar = db.Seminar
                                  .Join(
                    db.TimSeminarDatumSeminars,
                    s => s.Id,
                    tsds => tsds.SeminarId,
                    (s, tsds) => new { seminar = s, timSeminarDatumSeminar = tsds }
                    )
                                  .Where(joinedTables => joinedTables.timSeminarDatumSeminar.TimId == timZaKolegij.Id)
                                  .Select(joinedTables => joinedTables.seminar)
                                  .FirstOrDefault();

                // Pronaci SeminarDatum ako smo već odabrali
                odabraniSeminarDatum = db.SeminarDatum
                                       .Join(
                    db.TimSeminarDatumSeminars,
                    sd => sd.Id,
                    tsds => tsds.VrijemeIzlaganjaId,
                    (sd, tsds) => new { seminarDatum = sd, timSeminarDatumSeminar = tsds }
                    )
                                       .Where(joinedTables => joinedTables.timSeminarDatumSeminar.TimId == timZaKolegij.Id)
                                       .Select(joinedTables => joinedTables.seminarDatum)
                                       .FirstOrDefault();
            }

            // Dohvacanje svih zauzetih seminara da se mogu filtrirati ostali
            IEnumerable <Seminar> zauzetiSeminariKolegija = db.Seminar
                                                            .Where(s => s.KolegijId == kolegijId)
                                                            .Join(
                db.TimSeminarDatumSeminars,
                s => s.Id,
                tsds => tsds.SeminarId,
                (s, tsds) => new { seminar = s, timSeminarDatumSeminar = tsds }
                )
                                                            .Select(joinedTables => joinedTables.seminar);

            // Dohvacanje svi slobodni seminara
            IEnumerable <SelectListItem> slobodniSeminari = null;

            if (odabraniSeminar != null)
            {
                slobodniSeminari = db.Seminar
                                   .Where(s => s.KolegijId == kolegijId)
                                   .Where(s => !zauzetiSeminariKolegija.Contains(s) || s.Id == odabraniSeminar.Id)
                                   .Select(s => new SelectListItem {
                    Text = s.TemaSeminara, Value = s.Id.ToString()
                });
            }
            else
            {
                slobodniSeminari = db.Seminar
                                   .Where(s => s.KolegijId == kolegijId)
                                   .Where(s => !zauzetiSeminariKolegija.Contains(s))
                                   .Select(s => new SelectListItem {
                    Text = s.TemaSeminara, Value = s.Id.ToString()
                });
            }


            // Dohvacanje svih zauzetih datuae da mozemo filtrirati ostale
            IEnumerable <SeminarDatum> zauzetiDatumiKolegija = db.SeminarDatum
                                                               .Where(sd => sd.KolegijId == kolegijId)
                                                               .Join(
                db.TimSeminarDatumSeminars,
                sd => sd.Id,
                tsds => tsds.VrijemeIzlaganjaId,
                (sd, tsds) => new { seminarDatum = sd, timSeminarDatumSeminar = tsds }
                )
                                                               .Select(joinedTables => joinedTables.seminarDatum);

            // Dohvacanje svih slobodni seminara
            IEnumerable <SelectListItem> slobodniSeminarDatumi = null;

            if (odabraniSeminarDatum != null)
            {
                slobodniSeminarDatumi = db.SeminarDatum
                                        .Where(sd => sd.KolegijId == kolegijId)
                                        .Where(sd => !zauzetiDatumiKolegija.Contains(sd) || sd.Id == odabraniSeminarDatum.Id)
                                        .Select(sd => new SelectListItem {
                    Text = sd.TerminIzlaganja.ToString(), Value = sd.Id.ToString()
                });
            }
            else
            {
                slobodniSeminarDatumi = db.SeminarDatum
                                        .Where(sd => sd.KolegijId == kolegijId)
                                        .Where(sd => !zauzetiDatumiKolegija.Contains(sd))
                                        .Select(sd => new SelectListItem {
                    Text = sd.TerminIzlaganja.ToString(), Value = sd.Id.ToString()
                });
            }

            // Kreiranje viewModela
            OdabraniKolegijViewModel odabraniKolegijViewModel = new OdabraniKolegijViewModel
            {
                kolegij                = odabraniKolegij,
                seminar                = odabraniSeminar,
                seminarDatum           = odabraniSeminarDatum,
                tim                    = timZaKolegij,
                clanoviTima            = clanoviTima,
                dostupniSeminari       = slobodniSeminari,
                dostupniTermini        = slobodniSeminarDatumi,
                timSeminarDatumSeminar = timSeminarDatumSeminar
            };

            return(View(odabraniKolegijViewModel));
        }