Example #1
0
        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);
            }
        }