public async Task <ActionResult> CourseEnrollment(CourseEnrollmentViewModel model) { if (ModelState.IsValid) { var identity = (ClaimsIdentity)User.Identity; int sid = int.Parse(identity.Claims.Where(x => x.Type == ClaimTypes.Sid).Select(x => x.Value).First()); EnrolledClass myClass = new EnrolledClass { CourseId = int.Parse(model.CourseId), StudentId = sid }; var res = await _userService.AddClassAsync(myClass); if (res > 0) { return(Json(true)); //return View(model); //return RedirectToAction("Index", "Home"); } //NOTA questo funziona solo se NON รจ ajax!!! //else //{ // TempData["MessageToClient"] = "Course not enrolled. Please retry in 5 minutes or contact the administrator."; // ModelState.AddModelError("", "Course not enrolled. Please retry in 5 minutes or contact the administrator."); //} } // If we got this far, something failed, redisplay form //return View(model); return(Json(false)); }
public async Task <int> AddClassAsync(EnrolledClass enrolledClass) { try { var course = _applicationDbContext.Courses.Where(x => x.CourseId == enrolledClass.CourseId).First(); var student = _applicationDbContext.Users.Where(x => x.UserId == enrolledClass.StudentId).First(); enrolledClass.Course = course; enrolledClass.CourseName = course.CourseName; enrolledClass.Student = student; enrolledClass.StudentName = student.FirstName + " " + student.LastName; if (0 == _applicationDbContext.EnrolledClasses.Where(x => x.CourseId == course.CourseId && x.StudentId == student.UserId).Count()) { _applicationDbContext.EnrolledClasses.Add(enrolledClass); var result = await _applicationDbContext.SaveChangesAsync(); if (result > 0) { return(1); } else { return(-1); } } else { return(1); } } catch (Exception e) { return(-1); } }