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); } }
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); }
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); } }