public async Task <ActionResult> Create(AssignSubjectTeacherVM model)
        {
            if (ModelState.IsValid)
            {
                if (model.ClassName != null)
                {
                    int    counter  = 0;
                    string theClass = "";
                    string theName  = "";
                    foreach (var item in model.ClassName)
                    {
                        var countFromDb = await Db.AssignSubjectTeachers.AsNoTracking().CountAsync(x => x.ClassName.Equals(item) &&
                                                                                                   x.SubjectId.Equals(model.SubjectId));

                        var subject = await Db.Subjects.FindAsync(model.SubjectId);


                        // var countFromDb = CA.Count();

                        if (countFromDb >= 1)
                        {
                            TempData["UserMessage"] = $"Admin have already assigned Teacher to  {subject.SubjectName} in {item} Class";
                            TempData["Title"]       = "Error.";
                            ViewBag.SubjectId       = new SelectList(await _query.SubjectListAsync(userSchool), "SubjectId", "SubjectName");
                            ViewBag.ClassName       = new MultiSelectList(await _query.ClassListAsync(userSchool), "FullClassName", "FullClassName");
                            ViewBag.StaffName       = new SelectList(await _query.StaffListAsync(userSchool), "Username", "Username");
                            return(View(model));
                        }

                        var assigSubjectTeacher = new AssignSubjectTeacher()
                        {
                            ClassName = item,
                            SubjectId = model.SubjectId,
                            StaffName = model.StaffName,
                            SchoolId  = userSchool
                        };
                        Db.AssignSubjectTeachers.Add(assigSubjectTeacher);
                        counter += 1;
                        theClass = subject.SubjectName;
                        theName  = model.StaffName;
                    }
                    TempData["UserMessage"] = $" You have Assigned {theClass} Subject  to {theName} in {counter} class Successfully.";
                    TempData["Title"]       = "Success.";
                    await Db.SaveChangesAsync();
                }
                return(RedirectToAction("Index", "AssignSubjectTeachers"));
            }
            ViewBag.SubjectId = new SelectList(await _query.SubjectListAsync(userSchool), "SubjectId", "SubjectName");
            ViewBag.ClassName = new MultiSelectList(await _query.ClassListAsync(userSchool), "FullClassName", "FullClassName");
            ViewBag.StaffName = new SelectList(await _query.StaffListAsync(userSchool), "Username", "Username");
            return(View(model));
        }
        public async Task <ActionResult> Edit([Bind(Include = "Id,SubjectId,ClassName,StaffName")] AssignSubjectTeacher assignSubjectTeacher)
        {
            if (ModelState.IsValid)
            {
                assignSubjectTeacher.SchoolId        = userSchool;
                Db.Entry(assignSubjectTeacher).State = EntityState.Modified;
                await Db.SaveChangesAsync();

                TempData["UserMessage"] = $"Subject Teacher Updated Successfully Successfully.";
                TempData["Title"]       = "Success.";
                return(RedirectToAction("Index"));
            }
            ViewBag.SubjectId = new SelectList(await _query.SubjectListAsync(userSchool), "SubjectId", "SubjectName");
            ViewBag.ClassName = new MultiSelectList(await _query.ClassListAsync(userSchool), "FullClassName", "FullClassName");
            ViewBag.StaffName = new SelectList(await _query.StaffListAsync(userSchool), "Username", "Username");
            return(View(assignSubjectTeacher));
        }