Пример #1
0
        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));
        }
Пример #2
0
        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));
        }