Example #1
0
        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));
        }
Example #2
0
        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();
                    }
                }
            }
        }
Example #3
0
 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);
             }
         }
     }
 }
Example #4
0
 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();
             }
         }
     }
 }
Example #5
0
 public Certification GetAvailableUserCertification(dtoSubActivityCertificate item, Int32 idCommunity, Int32 idUser)
 {
     return(GetAvailableUserCertification(GetAvailableCertifications(item, idCommunity, idUser), View.PreloadForManager, View.PreloadReferenceTime));
 }
Example #6
0
        //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));
        }
Example #7
0
        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);
            }
        }