Exemplo n.º 1
0
        public async Task <ActionResult> Edit(AssignedClassesViewModel assignedClass)
        {
            if (ModelState.IsValid)
            {
                var studentName = await Db.Students.AsNoTracking().Where(x => x.StudentId.Equals(assignedClass.StudentId))
                                  .Select(s => s.FullName)
                                  .FirstOrDefaultAsync();

                var assigClass = new AssignedClass()
                {
                    AssignedClassId = assignedClass.AssignedClassId,
                    StudentId       = assignedClass.StudentId.ToString(),
                    ClassName       = assignedClass.ClassName,
                    TermName        = assignedClass.TermName.ToString(),
                    SessionName     = assignedClass.SessionName,
                    SchoolId        = userSchool
                };
                Db.Entry(assigClass).State = EntityState.Modified;
                await Db.SaveChangesAsync();

                TempData["UserMessage"] = "Student Class Updated Successfully.";
                TempData["Title"]       = "Success.";
                return(RedirectToAction("Index"));
            }
            ViewBag.StudentId   = new MultiSelectList(Db.Students.AsNoTracking(), "StudentID", "FullName");
            ViewBag.SessionName = new SelectList(Db.Sessions.AsNoTracking(), "SessionName", "SessionName");
            ViewBag.ClassName   = new SelectList(Db.Classes.AsNoTracking(), "FullClassName", "FullClassName");
            ViewBag.TermName    = new SelectList(Db.Terms.AsNoTracking(), "TermName", "TermName");
            return(View(assignedClass));
        }
Exemplo n.º 2
0
        public async Task <ActionResult> Create(AssignedClassesViewModel model)
        {
            if (ModelState.IsValid)
            {
                if (model.StudentId != null)
                {
                    int    counter  = 0;
                    string theClass = "";
                    foreach (var item in model.StudentId)
                    {
                        var countFromDb = await Db.AssignedClasses.AsNoTracking().CountAsync(x => x.TermName.Equals(model.TermName.ToString()) &&
                                                                                             x.SessionName.Equals(model.SessionName) &&
                                                                                             x.StudentId.Equals(item));

                        if (countFromDb >= 1)
                        {
                            TempData["UserMessage"] = "You have already Assigned Class these student";
                            TempData["Title"]       = "Error.";
                            ViewBag.StudentId       = new MultiSelectList(Db.Students.AsNoTracking(), "StudentID", "FullName");
                            ViewBag.SessionName     = new SelectList(Db.Sessions.AsNoTracking(), "SessionName", "SessionName");
                            ViewBag.ClassName       = new SelectList(Db.Classes.AsNoTracking(), "FullClassName", "FullClassName");
                            ViewBag.TermName        = new SelectList(Db.Terms.AsNoTracking(), "TermName", "TermName");
                            return(View(model));
                        }
                        else
                        {
                            var studentName = await Db.Students.AsNoTracking().Where(x => x.StudentId.Equals(item))
                                              .Select(s => s.FullName)
                                              .FirstOrDefaultAsync();

                            var assigClass = new AssignedClass()
                            {
                                StudentId   = item,
                                ClassName   = model.ClassName,
                                TermName    = model.TermName,
                                SessionName = model.SessionName,
                                StudentName = studentName,
                                SchoolId    = userSchool
                            };
                            Db.AssignedClasses.Add(assigClass);
                            counter += 1;
                            theClass = model.ClassName;
                        }
                    }

                    await Db.SaveChangesAsync();

                    TempData["UserMessage"] = $"You have Assigned to {counter} Student(s) to {theClass} Successfully.";
                    TempData["Title"]       = "Success.";
                    return(RedirectToAction("Index", "AssignedClasses"));
                }
                return(RedirectToAction("Index"));
            }

            ViewBag.StudentId   = new MultiSelectList(Db.Students.AsNoTracking(), "StudentID", "FullName");
            ViewBag.SessionName = new SelectList(Db.Sessions.AsNoTracking(), "SessionName", "SessionName");
            ViewBag.ClassName   = new SelectList(Db.Classes.AsNoTracking(), "FullClassName", "FullClassName");
            ViewBag.TermName    = new SelectList(Db.Terms.AsNoTracking(), "TermName", "TermName");
            return(View(model));
        }
Exemplo n.º 3
0
        // GET: AssignedClasses/Edit/5
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            AssignedClass assignedClass = await Db.AssignedClasses.FindAsync(id);

            if (assignedClass == null)
            {
                return(HttpNotFound());
            }
            var myModel = new AssignedClassesViewModel();

            myModel.AssignedClassId = assignedClass.AssignedClassId;
            ViewBag.StudentId       = new MultiSelectList(Db.Students.AsNoTracking(), "StudentID", "FullName");
            ViewBag.SessionName     = new SelectList(Db.Sessions.AsNoTracking(), "SessionName", "SessionName");
            ViewBag.ClassName       = new SelectList(Db.Classes.AsNoTracking(), "FullClassName", "FullClassName");
            return(View(myModel));
        }