private List <Certification> GetAvailableCertifications(dtoSubActivityCertificate item, Int32 idCommunity, Int32 idUser) { ModuleObject source = ModuleObject.CreateLongObject(item.Id, (int)COL_BusinessLogic_v2.UCServices.Services_EduPath.ObjectType.SubActivity, idCommunity, COL_BusinessLogic_v2.UCServices.Services_EduPath.Codex); source.ServiceID = Service.ServiceModuleID(); source.FQN = typeof(SubActivity).FullName; return(ServiceCertifications.GetUserCertifications(source, idUser, true)); }
public void InitView(Boolean isOnModalWindow, long time, long timeValidity, String mac, long idPath, long idActivity, long idSubactivity, Int32 idUser = -1) { if (UserContext.isAnonymous) { View.DisplaySessionTimeout(); } else { Int32 idCommunity = Service.GetPathIdCommunity(idPath); dtoSubActivityCertificate dto = Service.GetDtoSubActivityCertificate(idSubactivity); if (dto == null || (dto.IdPath != idPath)) { View.DisplayUnknownItem(); } else { if (idUser < 1) { idUser = UserContext.CurrentUserID; } View.ForUserId = idUser; View.IdPath = idPath; View.IdCommunityContainer = idCommunity; lm.Comol.Core.Authentication.liteGenericEncryption sEncryptor = null; Boolean canRestore = false; litePerson person = CurrentManager.GetLitePerson(UserContext.CurrentUserID); if (person != null) { canRestore = (person.TypeID == (int)UserTypeStandard.SysAdmin || person.TypeID == (int)UserTypeStandard.Administrator); if (!canRestore) { ModuleEduPath mEduPath = Service.ServiceStat.GetPermissionForCertification(idCommunity, person, idPath); canRestore = mEduPath.Administration; } //if (canRestore) //{ // sEncryptor= CurrentManager.GetUrlMacEncryptor(); // canRestore = (sEncryptor != null && sEncryptor.Validate(mac, UserContext.WorkSessionID, time, timeValidity,idPath,idSubactivity,idUser)); //} } if (canRestore) { View.RestoreCertificate(dto.AllowWithEmptyPlaceHolders, idUser, GetUserCertificationFileName(View.GetDefaulFileName(), idUser), ((dto.AutoGenerated) ? lm.Comol.Core.Certifications.CertificationType.ManagerProduced : lm.Comol.Core.Certifications.CertificationType.RuntimeProduced), dto.SaveCertificate); } else { View.DisplayNoPermissions(); } } } }
public void InitView(Boolean isOnModalWindow, long idPath, long idActivity, long idSubactivity, Guid uniqueId, Int32 idUser = -1) { if (UserContext.isAnonymous) { View.DisplaySessionTimeout(); } else { Int32 idCommunity = Service.GetPathIdCommunity(idPath); //dtoSubActivity dto = Service.GetDtoSubActivity(idSubactivity); dtoSubActivityCertificate dto = Service.GetDtoSubActivityCertificate(idSubactivity); if (dto == null || (dto.IdPath != idPath)) { View.DisplayUnknownItem(); } else { if (idUser < 1) { idUser = UserContext.CurrentUserID; } View.ForUserId = idUser; View.IdPath = idPath; View.IdCommunityContainer = idCommunity; if (View.PreloadForManager) { //Service. } if (dto.IdTemplate == 0) { Certification cer = GetAvailableUserCertification(dto, idCommunity, idUser); if (cer == null) { View.DisplayUnselectedTemplate(); } else { dto.SaveCertificate = false; DownloadCertification(idCommunity, idPath, dto, uniqueId, idUser); } } else { DownloadCertification(idCommunity, idPath, dto, uniqueId, idUser); } } } }
public void InitView(Boolean isOnModalWindow, long time, long timeValidity, String mac, long idPath, long idActivity, long idSubactivity, Int32 idUser = -1) { if (UserContext.isAnonymous) { View.DisplaySessionTimeout(); } else { Int32 idCommunity = Service.GetPathIdCommunity(idPath); dtoSubActivityCertificate dto = Service.GetDtoSubActivityCertificate(idSubactivity); if (dto == null || (dto.IdPath != idPath)) { View.DisplayUnknownItem(); } else { lm.Comol.Core.Authentication.liteGenericEncryption sEncryptor = null; Boolean canRestore = false; litePerson person = CurrentManager.GetLitePerson(UserContext.CurrentUserID); if (person != null) { canRestore = (person.TypeID == (int)UserTypeStandard.SysAdmin || person.TypeID == (int)UserTypeStandard.Administrator); if (!canRestore) { ModuleEduPath mEduPath = Service.ServiceStat.GetPermissionForCertification(idCommunity, person, idPath); canRestore = mEduPath.Administration; } if (canRestore) { sEncryptor = CurrentManager.GetUrlMacEncryptor(); canRestore = (sEncryptor != null && sEncryptor.Validate(mac, UserContext.WorkSessionID, time, timeValidity, idPath, idSubactivity, idUser)); } } if (canRestore) { View.AddAutoRedirectoToDownloadPage(RootObject.CertificationGenerateAndDownloadPage(sEncryptor.Encrypt(UserContext.WorkSessionID, time, timeValidity, idPath, idSubactivity, idUser), time, timeValidity, idPath, idActivity, idSubactivity, idUser, isOnModalWindow)); } else { View.DisplayNoPermissions(); } } } }
public Certification GetAvailableUserCertification(dtoSubActivityCertificate item, Int32 idCommunity, Int32 idUser) { return(GetAvailableUserCertification(GetAvailableCertifications(item, idCommunity, idUser), View.PreloadForManager, View.PreloadReferenceTime)); }
//public Boolean isCertificationActionMandatory(dtoSubActivity item) //{ // return Service.ActivityIsMandatoryForParticipant(item.ActivityParentId, 0, 0); //} //public Boolean HasCertificationToAutoGenerate(long idPath, Int32 idCommunity,Int32 idUser, dtoSubActivity item, DateTime viewStatBefore) //{ // if (GetAvailableUserCertification(item,idCommunity, idUser) == null && item.AutoGenerated) // return isActionActive(idPath, idUser, item, viewStatBefore); // else // return false; //} public Boolean isActionActive(long idPath, Int32 idUser, dtoSubActivityCertificate item, DateTime viewStatBefore) { List <lm.Comol.Modules.EduPath.Domain.DTO.dtoSubActivityLink> links = Service.GetDtoSubactivityActiveLinks(item.Id); return(Service.isCertificationActionActive(idPath, item, links, (links.Any() ? View.GetQuizInfos(links.Where(l => l.Visible).Select(l => l.IdObject).ToList(), idUser, IsEvaluablePath(idPath)) : new List <dtoQuizInfo>()), idUser, viewStatBefore)); }
private void DownloadCertification(Int32 idCommunity, long idPath, dtoSubActivityCertificate item, Guid uniqueId, Int32 idUser) { // find if user complete action StatusStatistic status = Service.ServiceStat.GetSubActivityStatisticsStatus(item.Id, idUser, DateTime.Now); //dtoSubActListUserStat stat = Service.ServiceStat.GetSubActUserStat(item.Id, idUser, DateTime.Now); Boolean saveExecution = !Service.ServiceStat.CheckStatusStatistic(status, StatusStatistic.CompletedPassed); //(stat == null || !(from s in stat.usersStat where s.Completion == 100 select s).Any()); // Check if associated template is valid List <Certification> certifications = GetAvailableCertifications(item, idCommunity, idUser); Certification certification = null; if (uniqueId != Guid.Empty) { certification = certifications.Where(c => c.FileUniqueId == uniqueId).FirstOrDefault(); } lm.Comol.Core.Certifications.CertificationType type = lm.Comol.Core.Certifications.CertificationType.RuntimeProduced; if (item.AutoGenerated) { type = lm.Comol.Core.Certifications.CertificationType.AutoProduced; } else { if (idUser == UserContext.CurrentUserID) { type = lm.Comol.Core.Certifications.CertificationType.UserRequired; } else { type = lm.Comol.Core.Certifications.CertificationType.ManagerProduced; } } if (certifications == null || certifications.Count == 0) { Boolean isValid = ServiceTemplates.isValidTemplate(item.IdTemplate, item.IdTemplateVersion); if (isValid && isActionActive(idPath, idUser, item, DateTime.Now)) { View.GenerateAndDownload(idPath, item.Id, item.AllowWithEmptyPlaceHolders, idUser, GetUserCertificationFileName(View.GetDefaulFileName(), idUser), type, item.SaveCertificate, saveExecution); } else if (!isValid) { View.DisplayUnselectedTemplate(); } else { View.DisplayUnavailableAction(item.Name); } } else if (certification != null || certifications.Where(c => c.Deleted == BaseStatusDeleted.None && c.Status == CertificationStatus.Valid).Any()) { if (saveExecution) { ExecuteAction(idPath, item.Id, StatusStatistic.CompletedPassed); } if (certification == null) { certification = GetAvailableUserCertification(certifications, View.PreloadForManager, View.PreloadReferenceTime); } View.DownloadCertification(item.AllowWithEmptyPlaceHolders, idUser, GetUserCertificationFileName(View.GetDefaulFileName(), idUser), lm.Comol.Core.Certifications.CertificationType.AutoProduced, item.SaveCertificate, saveExecution, certification.FileUniqueId, certification.FileExtension); } }