private void provjeriSobe(ZahtjevZaCimeraj zahtjevZaCimeraj, ZahtjevZaCimeraj zahtjevPrvogCimera) { if (zahtjevZaCimeraj.PaviljonId != zahtjevPrvogCimera.PaviljonId || zahtjevZaCimeraj.SobaId != zahtjevPrvogCimera.SobaId) { throw new Exception("Sobe moraju biti iste u svim zahtjevima"); } }
public IActionResult posaljiCimeraj(IFormCollection forma, int id) { string paviljon = forma["dlPaviljon"]; string soba = forma["dlSoba"]; string cimer1 = forma["fldCimer1"]; string cimer2 = forma["fldCimer2"]; string dodatneNapomene = forma["fldNpomene"]; if (string.IsNullOrEmpty(cimer1) || string.IsNullOrEmpty(cimer2) || _context.Student.Find(Int32.Parse(cimer1)) == null || _context.Student.Find(Int32.Parse(cimer2)) == null) { return(RedirectToAction("Cimeraj", "Student", new { id })); } // Snimi zahtjev u bazu podataka ZahtjevZaCimeraj zahtjevZaCimeraj = new ZahtjevZaCimeraj(); zahtjevZaCimeraj.PaviljonId = Int32.Parse(paviljon); zahtjevZaCimeraj.SobaId = Int32.Parse(soba); zahtjevZaCimeraj.Cimer1Id = Int32.Parse(cimer1); zahtjevZaCimeraj.Cimer2Id = Int32.Parse(cimer2); zahtjevZaCimeraj.DodatneNapomene = dodatneNapomene; zahtjevZaCimeraj.StudentId = id; _context.Add(zahtjevZaCimeraj); _context.SaveChanges(); return(RedirectToAction("Student", "Student", new { ID = id })); }
public async Task <IActionResult> PregledCimerajAsync(int id) { ZahtjevZaCimeraj zahtjevZaCimeraj = _context.ZahtjevZaCimeraj.Find(id); zahtjevZaCimeraj.Soba = _context.Soba.Find(zahtjevZaCimeraj.SobaId); zahtjevZaCimeraj.Paviljon = _context.Paviljon.Find(zahtjevZaCimeraj.PaviljonId); //zahtjevZaCimeraj.Cimer1 = _context.Student.Find(zahtjevZaCimeraj.Cimer1Id); zahtjevZaCimeraj.Cimer1 = await GetStudentAsync(zahtjevZaCimeraj.Cimer1Id); zahtjevZaCimeraj.Cimer1.LicniPodaci = _context.LicniPodaci.Find(zahtjevZaCimeraj.Cimer1.LicniPodaciId); //zahtjevZaCimeraj.Cimer2 = _context.Student.Find(zahtjevZaCimeraj.Cimer2Id); zahtjevZaCimeraj.Cimer2 = await GetStudentAsync(zahtjevZaCimeraj.Cimer2Id); zahtjevZaCimeraj.Cimer2.LicniPodaci = _context.LicniPodaci.Find(zahtjevZaCimeraj.Cimer2.LicniPodaciId); zahtjevZaCimeraj.Student = _context.Student.Find(zahtjevZaCimeraj.StudentId); zahtjevZaCimeraj.Student.LicniPodaci = _context.LicniPodaci.Find(zahtjevZaCimeraj.Student.LicniPodaciId); ViewBag.ZahtjevZaCimeraj = zahtjevZaCimeraj; return(View()); }
public async Task <IActionResult> OdobriCimerajAsync(int id) { ZahtjevZaCimeraj zahtjevZaCimeraj = _context.ZahtjevZaCimeraj.Find(id); ZahtjevZaCimeraj zahtjevPrvogCimera = _context.ZahtjevZaCimeraj.FirstOrDefault(z => z.StudentId == zahtjevZaCimeraj.Cimer1Id);; ZahtjevZaCimeraj zahtjevDrugogCimera = _context.ZahtjevZaCimeraj.FirstOrDefault(z => z.StudentId == zahtjevZaCimeraj.Cimer2Id); int potrebnoMjesta = 3; if (zahtjevZaCimeraj.Cimer1Id == 0) { zahtjevPrvogCimera = zahtjevDrugogCimera; zahtjevDrugogCimera = null; potrebnoMjesta--; } if (zahtjevZaCimeraj.Cimer2Id == 0) { potrebnoMjesta--; } if (potrebnoMjesta == 1) { throw new Exception("Student nije naveo cimere"); } if (zahtjevPrvogCimera == null || zahtjevZaCimeraj.Cimer2Id != 0 && zahtjevDrugogCimera == null) { throw new Exception("Svi cimeri moraju postati zahtjev za cimeraj"); } if (potrebnoMjesta == 2) { if (zahtjevPrvogCimera.Cimer1Id == zahtjevZaCimeraj.StudentId || zahtjevPrvogCimera.Cimer2Id == zahtjevZaCimeraj.StudentId) { provjeriSobe(zahtjevZaCimeraj, zahtjevPrvogCimera); } else { throw new Exception("Svi cimeri moraju poslati zahtjev za cimeraj"); } } else { if ((zahtjevZaCimeraj.StudentId == zahtjevPrvogCimera.Cimer1Id || zahtjevZaCimeraj.StudentId == zahtjevPrvogCimera.Cimer2Id) && (zahtjevZaCimeraj.StudentId == zahtjevDrugogCimera.Cimer1Id || zahtjevZaCimeraj.StudentId == zahtjevDrugogCimera.Cimer2Id)) { provjeriSobe(zahtjevZaCimeraj, zahtjevPrvogCimera); provjeriSobe(zahtjevZaCimeraj, zahtjevDrugogCimera); } else { throw new Exception("Svi cimeri moraju poslati zahtjev za cimeraj"); } } Soba soba = _context.Soba.Find(zahtjevZaCimeraj.SobaId); List <Student> studentiUSobi = _context.Student.Where(s => s.SobaId == soba.SobaId).ToList(); if (studentiUSobi.Count + potrebnoMjesta > soba.Kapacitet) { throw new Exception("Nema dovoljno mjesta u sobi u koju student sa cimerima želi da bude"); } Student student = _context.Student.Find(zahtjevZaCimeraj.StudentId); student.SobaId = soba.SobaId; _context.Student.Update(student); if (zahtjevZaCimeraj.Cimer1Id != 0) { Student student1 = await GetStudentAsync(zahtjevZaCimeraj.Cimer1Id); student1.SobaId = soba.SobaId; _context.Student.Update(student1); } if (zahtjevZaCimeraj.Cimer2Id != 0) { //Student student2 = _context.Student.Find(zahtjevZaCimeraj.Cimer2Id); Student student2 = await GetStudentAsync(zahtjevZaCimeraj.Cimer2Id); student2.SobaId = soba.SobaId; _context.Student.Update(student2); } _context.Zahtjev.Remove(zahtjevZaCimeraj); _context.Zahtjev.Remove(zahtjevPrvogCimera); if (zahtjevDrugogCimera == null) { _context.Zahtjev.Remove(zahtjevDrugogCimera); } _context.SaveChanges(); return(RedirectToAction("PregledZahtjeva", "Zahtjev")); }
public async Task <IActionResult> PregledZahtjevaAsync() { ICollection <Zahtjev> zahtjevi = new Collection <Zahtjev>(); StudentskiDomSingleton studentskiDom = StudentskiDomSingleton.getInstance(); await studentskiDom.RefreshZahtjeviAsync(); foreach (Zahtjev z in studentskiDom.Zahtjevi) { if (z is ZahtjevZaUpis) { ZahtjevZaUpis zahtjevZaUpis = z as ZahtjevZaUpis; //zahtjevZaUpis.PrebivalisteInfo = _context.PrebivalisteInfo.Find(zahtjevZaUpis.PrebivalisteInfoId); //zahtjevZaUpis.SkolovanjeInfo = _context.SkolovanjeInfo.Find(zahtjevZaUpis.SkolovanjeInfoId); //zahtjevZaUpis.LicniPodaci = _context.LicniPodaci.Find(zahtjevZaUpis.LicniPodaciId); zahtjevi.Add(z); } else if (z is ZahtjevZaCimeraj) { ZahtjevZaCimeraj zahtjevZaCimeraj = z as ZahtjevZaCimeraj; //zahtjevZaCimeraj.Soba = _context.Soba.Find(zahtjevZaCimeraj.SobaId); //zahtjevZaCimeraj.Paviljon = _context.Paviljon.Find(zahtjevZaCimeraj.PaviljonId); ////zahtjevZaCimeraj.Cimer1 = _context.Student.Find(zahtjevZaCimeraj.Cimer1Id); ////zahtjevZaCimeraj.Cimer2 = _context.Student.Find(zahtjevZaCimeraj.Cimer2Id); // ////zahtjevZaCimeraj.Student = _context.Student.Find(zahtjevZaCimeraj.StudentId); // //zahtjevZaCimeraj.Cimer1 = await GetStudentAsync(zahtjevZaCimeraj.Cimer1Id); //zahtjevZaCimeraj.Cimer2 = await GetStudentAsync(zahtjevZaCimeraj.Cimer2Id); // //zahtjevZaCimeraj.Student = await GetStudentAsync(zahtjevZaCimeraj.StudentId); // //zahtjevZaCimeraj.Student.LicniPodaci = _context.LicniPodaci.Find(zahtjevZaCimeraj.Student.LicniPodaciId); zahtjevi.Add(z); } else if (z is ZahtjevZaPremjestanje) { ZahtjevZaPremjestanje zahtjevZaPremjestanje = z as ZahtjevZaPremjestanje; //zahtjevZaPremjestanje.Soba1 = _context.Soba.Find(zahtjevZaPremjestanje.Soba1Id); //zahtjevZaPremjestanje.Soba2 = _context.Soba.Find(zahtjevZaPremjestanje.Soba2Id); // //zahtjevZaPremjestanje.Paviljon1 = _context.Paviljon.Find(zahtjevZaPremjestanje.Paviljon1Id); //zahtjevZaPremjestanje.Paviljon2 = _context.Paviljon.Find(zahtjevZaPremjestanje.Paviljon2Id); // ////zahtjevZaPremjestanje.Student = _context.Student.Find(zahtjevZaPremjestanje.StudentId); //zahtjevZaPremjestanje.Student= await GetStudentAsync(zahtjevZaPremjestanje.StudentId); // //zahtjevZaPremjestanje.Student.LicniPodaci = _context.LicniPodaci.Find(zahtjevZaPremjestanje.Student.LicniPodaciId); zahtjevi.Add(zahtjevZaPremjestanje); } else if (z is ZahtjevZaNabavkuNamirnica) { ZahtjevZaNabavkuNamirnica zahtjevZaNabavkuNamirnica = z as ZahtjevZaNabavkuNamirnica; if (z.ZahtjevId == 39) { continue; } zahtjevi.Add(zahtjevZaNabavkuNamirnica); } } ViewBag.Zahtjevi = zahtjevi; ViewBag.id = UpravaController.UpravaId; return(View()); }