82 lines
3.4 KiB
C#
82 lines
3.4 KiB
C#
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<ElearningCache>();
|
|
var model = new List<NexiusListItemModel>();
|
|
|
|
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);
|
|
}
|
|
}
|
|
}
|
|
}
|