public IActionResult SetAssignment(Lista lista) { ZajeciaDB zaj = new ZajeciaDB(lista.selectedSlot); zaj.slot = Convert.ToInt32(lista.slotid); lista.selectedSlot = System.Text.Json.JsonSerializer.Deserialize <Zajecia>(lista.jsonString); using (var db = new MyContext()) { Lista.mutex.WaitOne(); if (db.assignments.Any(ass => ass.GroupID == zaj.group && (ass.TeacherID == zaj.teacher || ass.SubjectID == zaj.subject))) { Lista.mutex.ReleaseMutex(); return(View("TeacherUnassignable", new Err() { what = lista.what, selectedItem = lista.selectedItem })); } db.assignments.Add(new Assignment() { TeacherID = zaj.teacher, GroupID = zaj.group, SubjectID = zaj.subject }); db.SaveChanges(); Lista.mutex.ReleaseMutex(); lista.selectedSlot.@class = db.subjects.Find(zaj.subject).name; } try { lista.changeSlot(lista.selectedSlot); } catch (Exception e) { if (e.Message[0] != '1') { throw e; } return(View("UpdateError", new Err() { what = lista.what, selectedItem = lista.selectedItem })); } Lista model = new Lista() { what = lista.what, selectedItem = lista.selectedItem }; getSlotGroups(model); return(View("Index", model)); }
public IActionResult ChangeSlot(Lista lista) { lista.selectedSlot.slot = Convert.ToInt32(lista.slotid); ZajeciaDB zaj = new ZajeciaDB(lista.selectedSlot); using (var db = new MyContext()) { if (!db.assignments.Any(ass => ass.TeacherID == zaj.teacher && ass.GroupID == zaj.group)) { lista.jsonString = System.Text.Json.JsonSerializer.Serialize(lista.selectedSlot); lista.listy = new Listy(); var subjects = db.subjects.ToList(); foreach (var it in subjects) { if (!db.assignments.Any(ass => ass.GroupID == zaj.group && ass.SubjectID == it.SubjectID)) { lista.listy.groups.Add(it.name); } } if (!lista.listy.groups.Any()) { return(View("TeacherUnassignable", new Err() { what = lista.what, selectedItem = lista.selectedItem })); } return(View("TeacherError", lista)); } zaj.subject = db.assignments.Single(ass => ass.GroupID == zaj.group && ass.TeacherID == zaj.teacher).SubjectID; lista.selectedSlot.@class = db.subjects.Find(zaj.subject).name; } try { lista.changeSlot(lista.selectedSlot); } catch (Exception e) { if (e.Message[0] != '1') { throw e; } return(View("UpdateError", new Err() { what = lista.what, selectedItem = lista.selectedItem })); } getSlotGroups(lista); return(View("Index", lista)); }