public ActionResult MyProgress() { var userId = this.User.Identity.GetUserId(); var driveEvents = this.driveEvents .GetEventsByUser(userId) .ToList(); double totalHours = 0; foreach (var driveEvent in driveEvents) { totalHours += (driveEvent.End - driveEvent.Start).TotalHours; } double percentage = 0; if (totalHours != 0) { percentage = totalHours / 32; } var model = new MyProgressViewModel() { CurrentProgress = percentage, DrivedHours = (int)totalHours, HoursLeft = 32 - (int)totalHours }; return(this.View(model)); }
public ActionResult MyProgress() { var userId = this.User.Identity.GetUserId(); var driveEvents = this.driveEvents .GetEventsByUser(userId) .ToList(); double totalHours = 0; foreach (var driveEvent in driveEvents) { totalHours += (driveEvent.End - driveEvent.Start).TotalHours; } double percentage = 0; if (totalHours != 0) { percentage = totalHours / 32; } var model = new MyProgressViewModel() { CurrentProgress = percentage, DrivedHours = (int)totalHours, HoursLeft = 32 - (int)totalHours }; return this.View(model); }
public IActionResult UserProgress(string id, string userId) { ViewData["Id"] = id; AppUser user = userManager.Users.FirstOrDefault(u => u.Id == userId); MyProgressViewModel myProgress = new MyProgressViewModel { User = user }; double myRating = 0; double myCompletedPresentations = 0; int myViews = 0; int myRepresentations = 0; List <MyProgressCourseInfo> Courses = new List <MyProgressCourseInfo>(); foreach (Course course in repository.Courses) { if (repository.CourseUsers .Any(cu => cu.AppUserId == user.Id && cu.CourseId == course.CourseId)) { MyProgressCourseInfo courseProgress = new MyProgressCourseInfo { Course = course }; double courseRating = 0; double completedPresentations = 0; List <MyProgressPresentationsInfo> presentationsInfo = new List <MyProgressPresentationsInfo>(); foreach (Presentation presentation in course.Presentations) { MyProgressPresentationsInfo presentationProgress = new MyProgressPresentationsInfo { Presentation = presentation }; Representation repres = UserRepresentation(user.Id, presentation.PresentationId); if (repres != null) { presentationProgress.Rating = repres.Rating; courseRating += repres.Rating; completedPresentations += (courseRating > 0) ? 1.0 : 0; myRepresentations++; myViews += repository.Videos.FirstOrDefault(v => v.Id == repres.VideoId).Views; } presentationsInfo.Add(presentationProgress); } courseProgress.Presentations = presentationsInfo.AsQueryable(); courseProgress.AvgRating = (completedPresentations > 0) ? courseRating / completedPresentations * 1.0 : 0; courseProgress.CompletedPresentations = (int)completedPresentations; myRating += courseRating; myCompletedPresentations += completedPresentations; Courses.Add(courseProgress); } } myProgress.Courses = Courses.AsQueryable(); myProgress.AvgRating = (myCompletedPresentations > 0) ? myRating / myCompletedPresentations * 1.0 : 0; myProgress.Representations = myRepresentations; myProgress.Views = myViews; return(View(myProgress)); }