public ActionResult Watch(Guid id) { var classRepository = new ClassRepository(_context); var classAccessRepository = new ClassAccessRepository(_context); var classInfo = classRepository.GetClass(id, _loggedUser.Id, GetUserRole(_loggedUser)); if (classInfo.Available && classInfo.Class.Active) { if (GetUserRole(_loggedUser) == Role.Student) { classAccessRepository.CreateAccess(new ClassAccess { Class = classInfo.Class, User = _loggedUser, AccessDateTime = DateTime.Now, Percentual = classInfo.Percentual, WatchedSeconds = classInfo.WatchedSeconds }); } return(View(ClassViewModel.FromEntityWithFiles(classInfo))); } TempData["MessageType"] = "warning"; TempData["MessageTitle"] = Resource.WarningToastrTitle; TempData["Message"] = Resource.NotAllowedWatchClassToastrMessage; return(RedirectToAction("Index", "Home")); }
public static SearchResult Parse <T>(T item, User loggedUser, IContext context) where T : ISearchResult { var result = new SearchResult { Id = item.Id, Description = item.Name, ResultType = (ResultType)Enum.Parse(typeof(ResultType), ObjectContext.GetObjectType(item.GetType()).Name) }; if (result.ResultType == ResultType.File && context.GetList <FileAccess>().Any(x => x.File.Id == result.Id)) { result.Percentual = 100; } else if (result.ResultType == ResultType.Class) { var classAccessRepository = new ClassAccessRepository(context); var longestAccess = classAccessRepository.GetLongestAccess(result.Id, loggedUser.Id); if (longestAccess != null) { result.Percentual = longestAccess.Percentual; } } return(result); }
public ActionResult LastClassesPanel() { var classAccessRepository = new ClassAccessRepository(_context); return(PartialView("_LastClassesPanel", ClassAccessViewModel.FromEntityList(classAccessRepository.ListLastAccesses(_loggedUser.Id), new DefaultDateTimeHumanizeStrategy()))); }
public ActionResult UpdateProgress(ClassAccessViewModel viewModel) { var classAccessRepository = new ClassAccessRepository(_context); var classRepository = new ClassRepository(_context); var classInfo = classRepository.GetClass(viewModel.ClassId, _loggedUser.Id, GetUserRole(_loggedUser)); classAccessRepository.UpdateProgress(viewModel.ToEntity(_loggedUser, classInfo.Class)); return(new HttpStatusCodeResult(HttpStatusCode.OK, "Updated")); }