using System; using System.Collections.Generic; using System.Linq; using System.Web.Mvc; using Kreta.BusinessLogic.Helpers; using Kreta.BusinessLogic.Security; using Kreta.Core.Elearning.Nexius; using Kreta.Framework; using Kreta.KretaServer.Caching; using Kreta.Web.Areas.Adminisztracio.Models; using Kreta.Web.Helpers; using Kreta.Web.Security; using Nexius.IdentityProvider.Model.External.V1; using Nexius.IdentityProvider.Model.Lti; namespace Kreta.Web.Areas.Adminisztracio.Controllers { [MvcRoleClaimsAuthorize(true)] [MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue, KretaClaimPackages.IsDefaultAdminUser.ClaimValue)] [MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Naplo.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue)] public class ELearningController : Controller { readonly INexiusCourseService nexiusCourseService; public ELearningController(INexiusCourseService nexiusCourseService) { this.nexiusCourseService = nexiusCourseService; } public ActionResult Index() { var cache = SDAServer.Instance.CacheManager.AquireCache(); var model = new List(); var isGondviselo = ClaimData.IsTanuloOrGondviselo && ClaimData.GondviseloId != null; var isTanulo = ClaimData.IsTanuloOrGondviselo && ClaimData.GondviseloId == null; var courseIdList = new ElearningElerhetosegHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetElearningElerhetosegList(isGondviselo, isTanulo, (int)ClaimData.FelhasznaloSzerepkor, ClaimData.FelhasznaloSzerepCsomagok, ClaimData.GondviseloId); var courses = cache.GetCourses(courseIdList, nexiusCourseService); var courseResults = nexiusCourseService.GetUserCourseResults(GetFelhasznaloAzonosito()); CourseResult courseResult; NexiusListItemModel listItem; foreach (var course in courses) { listItem = new NexiusListItemModel() { Course = course.Value }; courseResult = courseResults.FirstOrDefault(x => x.Activities.CourseObjectId == course.Value.CourseObject.Id); if (courseResult != null) { listItem.CourseResult = courseResult; } else { listItem.CourseResult = new CourseResult(); listItem.CourseResult.Activities = new LtiCourseResultModel(); listItem.CourseResult.Activities.Progress = 0; listItem.CourseResult.Activities.Measure = 0; listItem.CourseResult.Activities.ResultEndTime = DateTime.MaxValue; listItem.CourseResult.Activities.TotalTime = 0; } model.Add(listItem); } return View(model); } private string GetFelhasznaloAzonosito() { if (ClaimData.GondviseloId.HasValue) { return new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetGondviseloEgyediAzonosito(ClaimData.GondviseloId.Value); } else { return new FelhasznaloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetFelhasznaloEgyediAzonosito(ClaimData.FelhasznaloId); } } } }