private void DisplayDefaultAction(long idPath, dtoSubActivity item)
        {
            // find if user complete action
            //StatusStatistic status = Service.ServiceStat.GetSubActivityStatisticsStatus(item.Id, View.ForUserId, DateTime.Now);
            Boolean refreshContainer = !Service.ServiceStat.CheckStatusStatistic(item.StatusStat, StatusStatistic.CompletedPassed);

            //Boolean saveExecution = (stat == null || !(from s in stat.usersStat where s.Completion == 100 select s).Any());
            // Check if associated template is valid
            Boolean isValid = ServiceTemplates.isValidTemplate(item.IdCertificate, item.IdCertificateVersion);
            List <Certification> certifications = GetAvailableCertifications(item, View.IdCommunityContainer, View.ForUserId);

            //View.SaveRunningAction = saveExecution;
            if (certifications == null || certifications.Count == 0)
            {
                if (isActionActive(View.IdPath, View.ForUserId, item, DateTime.Now))
                {
                    View.DisplayDownloadUrl(item.Name, RootObject.LoadRenderCertificationPage(idPath, item, View.ForUserId), false, refreshContainer);
                }
                //View.DisplayItemForGenerate(item.Name, item.SaveCertificate);
                else
                {
                    View.DisplayItem(item.Name);
                }
            }
            else if (certifications.Where(c => c.Deleted == BaseStatusDeleted.None && c.Status == CertificationStatus.Valid).Any())
            {
                View.DisplayDownloadUrl(item.Name, RootObject.LoadRenderCertificationPage(idPath, item, View.ForUserId, GetAvailableUserCertification(certifications)), true, refreshContainer);
                //LoadRenderCertificationPage
                //View.DisplayItem(item.Name, cer.FileUniqueId, cer.FileExtension);
            }
        }
Ejemplo n.º 2
0
        public lm.Comol.Core.DomainModel.DocTemplateVers.Domain.DTO.ServiceExport.DTO_Template FillDataIntoTemplate(Int32 idCommunity, Int32 idUser, long idPath, long idSubActivity, String basePath, String istanceName, ref CertificationError cError)
        {
            lm.Comol.Core.DomainModel.DocTemplateVers.Domain.DTO.ServiceExport.DTO_Template template = null;
            SubActivity subActivity = Service.GetSubActivity(idSubActivity);

            if (subActivity != null)
            {
                template = ServiceTemplates.TemplateGet(subActivity.IdCertificate, subActivity.IdCertificateVersion, basePath);
                if (template != null)
                {
                    //litePerson person = CurrentManager.GetLitePerson(idUser);
                    Person person = CurrentManager.GetPerson(idUser);

                    liteCommunity        community    = CurrentManager.GetLiteCommunity(idCommunity);
                    liteSubscriptionInfo subscription = CurrentManager.GetLiteSubscriptionInfo(idUser, idCommunity);
                    String organization = "";


                    if (community != null)
                    {
                        organization = CurrentManager.GetOrganizationName(community.IdOrganization);
                    }

                    List <String> pHolders = TemplateEduPathPlaceHolders.PlaceHolders().Values.Select(v => v).ToList();

                    pHolders.AddRange(lm.Comol.Core.DomainModel.Helpers.TemplateCommonPlaceHolders.PlaceHolders().Values.Select(v => v).ToList());
                    if (template.Modules != null && template.Modules.Where(m => m.IdModule == Service.ServiceModuleID()).Any() && subActivity != null)
                    {
                        // DEVO RIEmPIRE I PLACE HOLDERS !
                        List <lm.Comol.Modules.EduPath.Domain.DTO.dtoSubActivityLink> links = Service.GetDtoSubactivityActiveLinks(idSubActivity);
                        if (links == null || links.Count == 0)
                        {
                            template.Body.Text = TemplateEduPathPlaceHolders.Translate(template.Body.Text, AppContext, idPath, idUser, subActivity);
                        }
                        else
                        {
                            template.Body.Text = TemplateEduPathPlaceHolders.Translate(template.Body.Text, AppContext, idPath, idUser, subActivity, View.GetQuizInfos(links.Where(l => l.Visible).Select(l => l.IdObject).ToList(), idUser, IsEvaluablePath(idPath)));
                        }
                    }
                    Int32 idLanguage = (person == null) ? UserContext.Language.Id : person.LanguageID;

                    template.Body.Text = lm.Comol.Core.DomainModel.Helpers.TemplateCommonPlaceHolders.Translate(template.Body.Text, person, community, (subscription == null) ? null : subscription.SubscribedOn, organization, CurrentManager.GetTranslatedRole(subscription.IdRole, idLanguage), CurrentManager.GetTranslatedProfileType((person == null) ? (int)UserTypeStandard.Guest : person.TypeID, idLanguage), istanceName);
                    Int32 missingPlaceHolders = pHolders.Where(p => template.Body.Text.Contains(p)).Count();
                    cError = (missingPlaceHolders == 0) ? CertificationError.None : ((missingPlaceHolders == 1) ? CertificationError.EmptyTemplateItem : CertificationError.EmptyTemplateItems);
                }
            }
            else
            {
                cError = CertificationError.ExternalItemUnknown;
            }
            return(template);
        }
        private List <dtoModuleActionControl> GenerateActions(dtoSubActivity item)
        {
            List <dtoModuleActionControl> actions = new List <dtoModuleActionControl>();

            Boolean       isValid = ServiceTemplates.isValidTemplate(item.IdCertificate, item.IdCertificateVersion);
            Certification c       = GetAvailableUserCertification(item, View.IdCommunityContainer, View.ForUserId);

            if (c != null || (!item.SaveCertificate))
            {
                actions.Add(new dtoModuleActionControl()
                {
                    ControlType = StandardActionType.Play, isEnabled = true, ExtraData = (c != null) ? c.FileUniqueId.ToString() + "," + c.FileExtension : ""
                });
                actions.Add(new dtoModuleActionControl()
                {
                    ControlType = StandardActionType.ViewPersonalStatistics, isEnabled = true, ExtraData = (c != null) ? c.FileUniqueId.ToString() + "," + c.FileExtension : ""
                });
                actions.Add(new dtoModuleActionControl()
                {
                    ControlType = StandardActionType.ViewAdvancedStatistics, isEnabled = true, ExtraData = (c != null) ? c.FileUniqueId.ToString() + "," + c.FileExtension : ""
                });
                actions.Add(new dtoModuleActionControl()
                {
                    ControlType = StandardActionType.ViewUserStatistics, isEnabled = true, ExtraData = (c != null) ? c.FileUniqueId.ToString() + "," + c.FileExtension : ""
                });
            }
            else
            {
                actions.Add(new dtoModuleActionControl()
                {
                    ControlType = StandardActionType.Play, isEnabled = true
                });
            }

            actions.Where(a => !string.IsNullOrEmpty(a.LinkUrl) && a.LinkUrl.Contains("//")).ToList().ForEach(a => a.LinkUrl = a.LinkUrl.Replace("//", "/"));
            return(actions);
        }
Ejemplo n.º 4
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);
            }
        }