public ActionResult Create([Bind(Include = "CourseCompletionId,UserId,CourseId,DateCompleted")] CourseCompletion courseCompletion) { if (ModelState.IsValid) { db.CourseCompletions.Add(courseCompletion); db.SaveChanges(); return(RedirectToAction("Index")); } //newView.UserId = User.Identity.GetUserId(); //newView.LessonId = lesson.LessonId; //newView.DateViewed = DateTime.Now; //db.LessonViews.Add(newView); //db.SaveChanges(); //List<Lesson> viewedList = new List<Lesson>(); //Lesson view = new Lesson(); //foreach (Lesson item in viewedList) //{ // if (viewedList.Count() < db.LessonViews.Count()) // { // } //} ViewBag.CourseId = new SelectList(db.Courses, "CourseId", "CourseName", courseCompletion.CourseId); ViewBag.UserId = new SelectList(db.UserDetails, "UserId", "FirstName", courseCompletion.UserId); return(View(courseCompletion)); }
public ActionResult Create([Bind(Include = "CourseId,CourseName,CourseDescription,IsActive")] Course course) { if (ModelState.IsValid) { db.Courses.Add(course); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(course)); }
public ActionResult Create([Bind(Include = "LessonViewId,UserId,LessonId,DateViewed")] LessonView lessonView) { if (ModelState.IsValid) { db.LessonViews.Add(lessonView); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.LessonId = new SelectList(db.Lessons, "LessonId", "LessonTitle", lessonView.LessonId); ViewBag.UserId = new SelectList(db.UserDetails, "UserId", "FirstName", lessonView.UserId); return(View(lessonView)); }
public async Task <ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { //default role to User UserManager.AddToRole(user.Id, "User"); #region Custom User Details UserDetail newUserDeets = new UserDetail(); newUserDeets.UserId = user.Id; newUserDeets.FirstName = model.FirstName; newUserDeets.LastName = model.LastName; newUserDeets.Email = model.Email; CanineCoursesEntities db = new CanineCoursesEntities(); db.UserDetails.Add(newUserDeets); db.SaveChanges(); #endregion //var code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); //var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); //await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking this link: <a href=\"" + callbackUrl + "\">link</a>"); //ViewBag.Link = callbackUrl; return(View("Login")); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
// GET: Lessons/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Lesson lesson = db.Lessons.Find(id); if (lesson == null) { return(HttpNotFound()); } if (lesson.VideoURL != null) { } //var views = db.UserDetails.Include(i => i.UserId).Include(i => lesson.LessonId).Include(i => DateTime.Now); //var views = db.LessonViews.Include(l => l.Lesson).Include(l => l.UserDetail).Include(l => l.UserId).Include(l => (DateTime.Now)); var currentUser = User.Identity.GetUserId(); var lessonNotViewed = db.LessonViews.Where(lv => lv.LessonId == lesson.LessonId && lv.UserId == currentUser).Count(); if (lessonNotViewed == 0) { LessonView newView = new LessonView { UserId = User.Identity.GetUserId(), LessonId = lesson.LessonId, DateViewed = DateTime.Now }; db.LessonViews.Add(newView); db.SaveChanges(); #region Original completion Code //var counter = 0; ////var idCourse = from l in db.Lessons //// select l.CourseId; //var idView = from v in db.LessonViews // select v.LessonViewId; //var idCourse = from l in db.LessonViews // join i in db.Lessons on l.LessonId equals i.LessonId // select new { i.CourseId }; //foreach (var view in db.LessonViews) //{ // if (idView.Count() != idCourse.Count()) // { // counter += 1; // } // else // { // CourseCompletion completedCourse = new CourseCompletion(); // completedCourse.UserId = User.Identity.GetUserId(); // completedCourse.CourseId = lesson.CourseId; // completedCourse.DateCompleted = DateTime.Now; // db.CourseCompletions.Add(completedCourse); // db.SaveChanges(); // } //} #endregion #region Archive 2 ////Course completion should be created when the user has completed all lesson views associated to the course ////A count will tell you how many lesson views but there is a possibility of a logic error if you do NOT prevent ////multiple lesson views from being created for a single lesson for the same user. - Cared for with lesson not viewd on 44 ////get the course id and number of lessons associated to the course ////var lessons = (from l in db.Lessons //// where l.CourseId == lesson.CourseId //// select l).Count(); //var lessonsByTHISCourse = db.Lessons.Where(Course => Course.CourseId == lesson.CourseId).Count(); ////get the number of lessons completed in the course by the user ////var user = (from u in db.LessonViews //// where u.LessonViewId == lesson.LessonId //// select u).Count(); ////var lessonsTotalUser = db.LessonViews.Where(Lesson => Lesson.LessonId == lesson.LessonId).OrderBy(Lesson => Lesson.UserId).Count(); //var lessonsTotalUser = db.LessonViews.Where(lv => lv.LessonId == lesson.LessonId && lv.UserId == newView.UserId).Count(); ////if equal then create the course completed object //if (lessonsByTHISCourse == lessonsTotalUser) //{ // CourseCompletion completedCourse = new CourseCompletion(); // completedCourse.UserId = User.Identity.GetUserId(); // completedCourse.CourseId = lesson.CourseId; // completedCourse.DateCompleted = DateTime.Now; // db.CourseCompletions.Add(completedCourse); // db.SaveChanges(); //} #endregion #region Completion code attempt 1 archive //var complete = from c in db.LessonViews // group c by c.LessonViewId into v // select v; //var idCourse = from l in db.Lessons // select l.CourseId; //var counter = 0; //foreach (var view in db.LessonViews) //{ // if (counter < idCourse.Count()) // { // counter++; // } // else // { // CourseCompletion completedCourse = new CourseCompletion(); // completedCourse.UserId = User.Identity.GetUserId(); // completedCourse.CourseId = lesson.CourseId; // completedCourse.DateCompleted = DateTime.Now; // } //} #endregion var totalViewed = db.LessonViews.Where(x => x.Lesson.CourseId == lesson.CourseId).Count(); if (totalViewed == lesson.Cours.Lessons.Count) { // Create CourseCompleted CourseCompletion completedCourse = new CourseCompletion() { UserId = User.Identity.GetUserId(), CourseId = lesson.CourseId, DateCompleted = DateTime.Now }; db.CourseCompletions.Add(completedCourse); db.SaveChanges(); string message = $"{lesson.Cours.CourseName} has been completed by {User.Identity.Name}!"; //what sends the email MailMessage mm = new MailMessage("*****@*****.**", "*****@*****.**", null, message); //mail message properties //allow html formatting in email mm.IsBodyHtml = true; //high priority mm.Priority = MailPriority.High; //respond to sender's email //mm.ReplyToList.Add(cvm.Email); //info from host - allow email to be sent SmtpClient client = new SmtpClient("mail.rachelpunches.com"); //client credentials client.Credentials = new NetworkCredential("*****@*****.**", "Optimus!!11"); // try/catch try { client.Send(mm); } catch (Exception ex) { ViewBag.CustomerMessage = $"We are sorry. Your request could not be completed at this time. Please try again later.<br/>Error Message: <br/>{ex.StackTrace}"; return(View()); } //return confirmation to user //return View(); } } return(View(lesson)); }