Пример #1
0
        public string Post(LabSpecificna lv)
        {
            try
            {
                db.LabSpecificna.Add(lv);
                db.SaveChanges();

                return("Added Successfully!!");
            }
            catch (Exception)
            {
                return("Failed to Add!!");
            }
        }
Пример #2
0
        public string Put(LabSpecificna lv)
        {
            try
            {
                using (BAZAEntities db = new BAZAEntities())
                {
                    var lab_specificnaDB = db.LAB_SPECIFICNA.FirstOrDefault(x => x.ID == lv.ID);

                    lab_specificnaDB.vremeOd      = lv.vremeOd;
                    lab_specificnaDB.vremeDo      = lv.vremeDo;
                    lab_specificnaDB.redosled     = lv.redosled;
                    lab_specificnaDB.Id_Lab_vezbe = lv.Id_lab_vezbe;

                    db.SaveChanges();
                }

                return("Updated Successfully!!");
            }
            catch (Exception)
            {
                return("Failed to Update!!");
            }
            //try
            //{
            //    string query = @"
            //        update dbo.LAB_SPECIFICNA set vremeOd=
            //        " + lv.vremeOd + @", vremeDo=" + lv.vremeDo + @",redosled='" + lv.redosled + @"'
            //        where ID=" + lv.ID + @"
            //        ";

            //    DataTable table = new DataTable();
            //    using (var con = new SqlConnection(ConfigurationManager.
            //        ConnectionStrings["AppDB"].ConnectionString))
            //    using (var cmd = new SqlCommand(query, con))
            //    using (var da = new SqlDataAdapter(cmd))
            //    {
            //        cmd.CommandType = CommandType.Text;
            //        da.Fill(table);
            //    }

            //    return "Updated Successfully!!";
            //}
            //catch (Exception)
            //{

            //    return "Failed to Update!!";
            //}
        }
Пример #3
0
        public string Put(LabSpecificna lv)
        {
            try
            {
                var lab_specificnaDB = db.LabSpecificna.FirstOrDefault(x => x.Id == lv.Id);

                lab_specificnaDB.VremeOd    = lv.VremeOd;
                lab_specificnaDB.VremeDo    = lv.VremeDo;
                lab_specificnaDB.Redosled   = lv.Redosled;
                lab_specificnaDB.IdLabVezbe = lv.IdLabVezbe;

                db.SaveChanges();

                return("Updated Successfully!!");
            }
            catch (Exception)
            {
                return("Failed to Update!!");
            }
        }
Пример #4
0
        public IActionResult GetLabS(int id)
        {
            var lab_specificnaDB = db.LabSpecificna.FirstOrDefault(x => x.Id == id);

            if (lab_specificnaDB == null)
            {
                return(BadRequest());
            }

            var s = new LabSpecificna
            {
                Id         = lab_specificnaDB.Id,
                VremeOd    = Convert.ToDateTime(lab_specificnaDB.VremeOd),
                VremeDo    = Convert.ToDateTime(lab_specificnaDB.VremeDo),
                Redosled   = lab_specificnaDB.Redosled,
                IdLabVezbe = lab_specificnaDB.IdLabVezbe
            };

            return(Ok(s));
        }
Пример #5
0
        public IHttpActionResult GetLabS(int id)
        {
            using (BAZAEntities db = new BAZAEntities())
            {
                var lab_specificnaDB = db.LAB_SPECIFICNA.FirstOrDefault(x => x.ID == id);
                if (lab_specificnaDB == null)
                {
                    return(BadRequest());
                }

                var s = new LabSpecificna
                {
                    ID           = lab_specificnaDB.ID,
                    vremeOd      = Convert.ToDateTime(lab_specificnaDB.vremeOd),
                    vremeDo      = Convert.ToDateTime(lab_specificnaDB.vremeDo),
                    redosled     = lab_specificnaDB.redosled,
                    Id_lab_vezbe = lab_specificnaDB.Id_Lab_vezbe
                };

                return(Json(s));
            }
            //string query = @"
            //        select vremeOd, vremeDo, redosled from
            //        dbo.LAB_SPECIFICNA where ID=" + id + @"
            //        ";
            //DataTable table = new DataTable();
            //using (var con = new SqlConnection(ConfigurationManager.
            //    ConnectionStrings["AppDB"].ConnectionString))
            //using (var cmd = new SqlCommand(query, con))
            //using (var da = new SqlDataAdapter(cmd))
            //{
            //    cmd.CommandType = CommandType.Text;
            //    da.Fill(table);
            //}

            //return Request.CreateResponse(HttpStatusCode.OK, table);
        }
        public IActionResult SmanjenKapacitet([FromBody] RaspodeliProtocnoModel parametri)
        {
            //parametri.LabVezbaId = 1;
            //parametri.Redosled = 1;
            //parametri.Ucionica = "565asd";
            //parametri.Trajanje = 30;
            //parametri.Kapacitet = 2;
            //parametri.Slot = 5;
            //parametri.Kraj = new DateTime(2020, 11, 11, 23, 0, 0);

            // DateTime pocetakSpec = DateTime.Now;
            int?index = 0;

            var specificna = db.LabSpecificna.FirstOrDefault(x => x.Id == parametri.LabVezbaSpecificnaId);

            parametri.IzabraniTermin = specificna.VremeOd.Value;

            DateTime pocetakSpec = parametri.IzabraniTermin;

            if (specificna != null)
            {
                parametri.Redosled = specificna.Redosled.Value;
                //parametri.Pocetak = specificna.VremeOd.Value;

                var spec = db.LabSpecificna.Where(x => x.IdLabVezbe == parametri.LabVezbaId &&
                                                  x.Redosled == parametri.Redosled &&
                                                  x.VremeOd >= parametri.IzabraniTermin)
                           .Include(x => x.Raspored)
                           .ThenInclude(x => x.StudentNavigation);

                if (spec.Count() > 0)
                {
                    var spec1 = spec.FirstOrDefault();
                    var ras   = spec1.Raspored.FirstOrDefault();
                    index = ras.StudentNavigation.Indeks;

                    parametri.Redosled = spec1.Redosled.Value;
                    parametri.Ucionica = ras.Ucionica;

                    foreach (var s in spec)
                    {
                        db.Raspored.RemoveRange(s.Raspored);
                    }
                }
                else
                {
                    return(BadRequest());
                }

                db.LabSpecificna.RemoveRange(spec);
                // db.SaveChanges();
            }
            else
            {
                return(BadRequest());
            }

            //POKUPI STUDENTE KOJI NISU USLI NA DANASNJU VEZBU
            var query = db.Student.AsQueryable();

            query = query.Where(s => s.LabVezbaStudent.Any(x => x.LabVezbaId == specificna.IdLabVezbe) && s.Indeks >= index);

            query = query.OrderBy(x => x.Indeks);

            var list = query.ToList();

            var res  = ProtocniDinamickiRaspored(parametri).Select(x => x.First()).ToList();
            var skip = 0;
            var i    = 0;

            foreach (var num in res)
            {
                specificna = new LabSpecificna
                {
                    IdLabVezbe = parametri.LabVezbaId,
                    Redosled   = parametri.Redosled,
                    //razmisli
                    VremeOd = pocetakSpec.AddMinutes(i * parametri.Slot)
                };

                db.LabSpecificna.Add(specificna);

                var studentiUSlot = list.Skip(skip).Take((int)num);
                skip += (int)num;

                foreach (var student in studentiUSlot)
                {
                    var raspored = new Raspored
                    {
                        StudentNavigation  = student,
                        Ucionica           = parametri.Ucionica,
                        LabVezbaNavigation = specificna
                    };
                    db.Raspored.Add(raspored);


                    raspored.Izmenjen = true;

                    //notifier.Send(student.Username, $"Obaveštenje o lab vežbama. Došlo je do izmene za {specificna.IdLabVezbeNavigation.Naziv} - {specificna.Redosled} termin {specificna.VremeOd}");
                }

                i++;
            }

            //db.SaveChanges();
            return(Ok());
        }
        public IActionResult Test([FromBody] RaspodeliProtocnoModel parametri)
        {
            var res = ProtocniRaspored(parametri).Select(x => x.First()).ToList();

            //TODO: POKUPI STUDENTE
            var query = db.Student.AsQueryable();

            query = query.Where(s => s.LabVezbaStudent.Any(x => x.LabVezbaId == parametri.LabVezbaId));

            query = query.OrderBy(x => x.Indeks);

            var list = query.ToList();

            //TODO: ZA SVAKOG DODAJ RASPORED

            var spec = db.LabSpecificna.Where(x => x.IdLabVezbe == parametri.LabVezbaId && x.Redosled == parametri.Redosled);

            db.LabSpecificna.RemoveRange(spec);
            db.SaveChanges();

            var skip = 0;
            var i    = 0;

            foreach (var num in res)
            {
                var specificna = new LabSpecificna
                {
                    IdLabVezbe = parametri.LabVezbaId,
                    Redosled   = parametri.Redosled,
                    //razmisli
                    VremeOd = parametri.Pocetak.AddMinutes(i * parametri.Slot)
                };
                i++;

                if (num == 0)
                {
                    continue;
                }

                var studentiUSlot = list.Skip(skip).Take((int)num);
                skip += (int)num;

                if (!studentiUSlot.Any())
                {
                    break;
                }

                foreach (var student in studentiUSlot)
                {
                    if (student.Indeks >= parametri.minIndeks)
                    {
                        var raspored = db.Raspored.FirstOrDefault(x => x.Student == student.Id && x.LabVezba == specificna.Id);

                        if (raspored == null)
                        {
                            raspored = new Raspored
                            {
                                StudentNavigation  = student,
                                Ucionica           = parametri.Ucionica,
                                LabVezbaNavigation = specificna
                            };
                            db.Raspored.Add(raspored);
                        }

                        raspored.Izmenjen = true;

                        //notifier.Send(student.Username, $"Obaveštenje o lab vežbama. Došlo je do izmene za {specificna.IdLabVezbeNavigation.Naziv} - {specificna.Redosled} termin {specificna.VremeOd}");
                    }
                }
            }

            db.SaveChanges();
            return(Ok());
        }
        public IActionResult PostMultipleRaspored([FromBody] RasporedFromCsv[] data)
        {
            try
            {
                foreach (var raspored in data)
                {
                    var student = db.Student.FirstOrDefault(x => x.Indeks == raspored.Indeks);

                    if (student is null && raspored.Indeks.HasValue)
                    {
                        student = new Student()
                        {
                            Indeks   = raspored.Indeks,
                            Ime      = raspored.Ime,
                            Prezime  = raspored.Prezime,
                            Username = raspored.Email
                        };
                        db.Student.Add(student);
                    }

                    var lab = db.LabVezba.FirstOrDefault(x => x.Naziv == raspored.NazivLabVezbe && !string.IsNullOrEmpty(raspored.NazivLabVezbe));

                    if (lab is null)
                    {
                        lab = new LabVezba
                        {
                            Naziv = raspored.NazivLabVezbe,
                            Tag   = raspored.Tag
                        };

                        db.LabVezba.Add(lab);
                    }

                    var specificna = db.LabSpecificna.FirstOrDefault(x => x.IdLabVezbeNavigation.Naziv == raspored.NazivLabVezbe && x.Redosled == raspored.LabVezba);

                    if (specificna is null)
                    {
                        specificna = new LabSpecificna
                        {
                            Redosled             = raspored.LabVezba,
                            IdLabVezbeNavigation = lab
                        };

                        db.LabSpecificna.Add(specificna);
                    }

                    var rasporedDB = db.Raspored.FirstOrDefault(x => (student == null || x.Student == student.Id) && x.LabVezba == specificna.Id);

                    if (rasporedDB is null)
                    {
                        rasporedDB = new Raspored
                        {
                            LabVezbaNavigation = specificna,
                            PocetakLaba        = raspored.Pocetak,
                            StudentNavigation  = student,
                            Ucionica           = raspored.Ucionica,
                            ZavrsetakLaba      = raspored.Kraj
                        };
                        db.Raspored.Add(rasporedDB);
                    }
                    else
                    {
                        rasporedDB.PocetakLaba   = raspored.Pocetak;
                        rasporedDB.ZavrsetakLaba = raspored.Kraj;
                        rasporedDB.Izmenjen      = true;
                    }
                }

                db.SaveChanges();

                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest());
            }
        }