public string Post(LabSpecificna lv) { try { db.LabSpecificna.Add(lv); db.SaveChanges(); return("Added Successfully!!"); } catch (Exception) { return("Failed to Add!!"); } }
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!!"; //} }
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!!"); } }
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)); }
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()); } }