private List <dtoModuleActionControl> AnalyzeModuleLinkItem(ModuleLink link, liteBaseCommunityFile item, DisplayActionMode display, StandardActionType actionsToDisplay) { List <dtoModuleActionControl> actions = new List <dtoModuleActionControl>(); if (item != null) { Boolean isReadyToPlay = IsReadyToPlay(item); View.IsReadyToPlay = isReadyToPlay; if (Display(display, DisplayActionMode.text) || Display(display, DisplayActionMode.textDefault) || !isReadyToPlay) { View.Display = DisplayActionMode.text; DisplayTextInfo(item, link.Action); } else if (Display(display, DisplayActionMode.defaultAction) || Display(display, DisplayActionMode.adminMode)) { DisplayDefaultAction(link, item, display); } if (isReadyToPlay) { actions = GenerateActions(link, item); } if (Display(display, DisplayActionMode.actions) && actionsToDisplay != StandardActionType.None) { View.DisplayActions(actions.Where(a => ((int)a.ControlType & (int)actionsToDisplay) > 0).ToList()); } } return(actions); }
private List <dtoModuleActionControl> AnalyzeActions(dtoModuleDisplayActionInitializer dto, StandardActionType actionsToDisplay) { List <dtoModuleActionControl> actions = new List <dtoModuleActionControl>(); View.ContainerCSS = dto.ContainerCSS; View.IconSize = dto.IconSize; if (dto.Link == null || dto.Link.DestinationItem == null) { View.DisplayEmptyAction(); } else { View.Display = dto.Display; liteBaseCommunityFile item = CurrentManager.Get <liteBaseCommunityFile>(dto.Link.DestinationItem.ObjectLongID); View.ItemType = RepositoryItemType.None; if (item == null || (dto.Link.DestinationItem.ObjectLongID == 0 && (dto.Link.Action == (int)CoreModuleRepository.ActionType.CreateFolder || dto.Link.Action == (int)CoreModuleRepository.ActionType.CreateFolder))) { View.DisplayRemovedObject(); } else { View.ItemType = item.RepositoryItemType; if (dto.PlaceHolders.Where(p => !String.IsNullOrEmpty(p.Text)).Any() && (Display(dto.Display, DisplayActionMode.defaultAction) || Display(dto.Display, DisplayActionMode.text))) { View.DisplayPlaceHolders(dto.PlaceHolders.Where(p => !String.IsNullOrEmpty(p.Text)).ToList()); } actions = AnalyzeModuleLinkItem(dto.Link, item, dto.Display, actionsToDisplay); } } return(actions); }
private Boolean IsReadyToPlay(liteBaseCommunityFile item) { switch (item.RepositoryItemType) { case RepositoryItemType.Multimedia: case RepositoryItemType.ScormPackage: return(Service.GetItemTransferStatus(item.UniqueID) == DomainModel.Repository.TransferStatus.Completed); default: return(true); } }
public String GetDescriptionByLink(ModuleLink link) { String result = ""; if (link == null || link.DestinationItem == null) { result = ""; } else { liteBaseCommunityFile item = CurrentManager.Get <liteBaseCommunityFile>(link.DestinationItem.ObjectLongID); if (item == null) { result = ""; } else { if (item.isFile) { result = View.GetDisplayItemDescription(item.DisplayName, item.Extension, item.Size, item.RepositoryItemType); } else { switch (link.Action) { case (int)CoreModuleRepository.ActionType.CreateFolder: result = View.CreateFolderDescription(item.Name); break; case (int)CoreModuleRepository.ActionType.UploadFile: result = View.UploadFileDescription(item.Name); break; case 0: result = View.FolderDescription(item.Name); break; } } } } return(result); }
private void DisplayTextInfo(liteBaseCommunityFile item, Int32 idAction) { if (item.isFile) { View.DisplayItem(item.DisplayName, item.Extension, item.Size, item.RepositoryItemType); } else { switch (idAction) { case (int)CoreModuleRepository.ActionType.CreateFolder: View.DisplayCreateFolder(item.Name); break; case (int)CoreModuleRepository.ActionType.UploadFile: View.DisplayUploadFile(item.Name); break; case 0: View.DisplayFolder(item.Name); break; } } }
private List <dtoModuleActionControl> GenerateActions(ModuleLink link, liteBaseCommunityFile item) { List <dtoModuleActionControl> actions = new List <dtoModuleActionControl>(); String serviceCode = link.DestinationItem.ServiceCode; Int32 IdModule = link.DestinationItem.ServiceID; Boolean allowDownload = View.AllowDownload(item.RepositoryItemType) && item.IsDownloadable && item.isFile; allowDownload = true; if (typeof(liteCommunityFile) != item.GetType()) { serviceCode = link.SourceItem.ServiceCode; IdModule = link.SourceItem.ServiceID; } String baseUrl = View.GetBaseUrl; int idCommunity = 0; if (item.CommunityOwner != null) { idCommunity = item.CommunityOwner.Id; } Boolean notSaveStat = (View.Display == DisplayActionMode.adminMode); switch (item.RepositoryItemType) { case RepositoryItemType.FileStandard: actions.Add(new dtoModuleActionControl(RootObject.DownloadFileFromModule(item.Id, (long)UserContext.CurrentUserID, UserContext.Language.Code, UserContext.WorkSessionID, View.ServiceID, idCommunity, link.Id, notSaveStat), StandardActionType.Play, true)); actions.Add(new dtoModuleActionControl(RootObject.DownloadFileFromModule(item.Id, (long)UserContext.CurrentUserID, UserContext.Language.Code, UserContext.WorkSessionID, View.ServiceID, idCommunity, link.Id, notSaveStat), StandardActionType.DownloadItem, true)); break; case RepositoryItemType.ScormPackage: if (typeof(liteModuleInternalFile) == item.GetType()) { liteModuleInternalFile internalFile = (liteModuleInternalFile)item; actions.Add(new dtoModuleActionControl(View.GetUrlForPlayScorm(link.Id, internalFile.Id, internalFile.UniqueID, idCommunity, link.SourceItem.ServiceID, internalFile.ServiceActionAjax, notSaveStat), StandardActionType.Play, true)); } else { actions.Add(new dtoModuleActionControl(View.GetUrlForPlayScorm(link.Id, item.Id, item.UniqueID, idCommunity, IdModule, notSaveStat), StandardActionType.Play, true)); } actions.Add(new dtoModuleActionControl(baseUrl + RootObject.EditScormPackageSettings(item.Id, link.Id, View.DestinationUrl, View.PreLoadedContentView), StandardActionType.EditMetadata, false)); actions.Add(new dtoModuleActionControl(baseUrl + RootObject.ManagementScormStatistics(item.Id, View.DestinationUrl, View.PreLoadedContentView), StandardActionType.ViewAdvancedStatistics, false)); actions.Add(new dtoModuleActionControl(baseUrl + RootObject.ManagementScormStatistics(item.Id, View.ForUserId, View.DestinationUrl, View.PreLoadedContentView), StandardActionType.ViewUserStatistics, false)); actions.Add(new dtoModuleActionControl(baseUrl + RootObject.UserScormStatistics(item.Id, View.DestinationUrl, View.PreLoadedContentView), StandardActionType.ViewPersonalStatistics, false)); if (allowDownload) { actions.Add(new dtoModuleActionControl(RootObject.DownloadFileFromModule(item.Id, (long)UserContext.CurrentUserID, UserContext.Language.Code, UserContext.WorkSessionID, View.ServiceID, idCommunity, link.Id, notSaveStat), StandardActionType.DownloadItem, true)); } break; case RepositoryItemType.Multimedia: case RepositoryItemType.VideoStreaming: if (typeof(liteModuleInternalFile) == item.GetType()) { liteModuleInternalFile internalFile = (liteModuleInternalFile)item; actions.Add(new dtoModuleActionControl(RootObject.PlayMultimediaFileFromModule(internalFile.Id, internalFile.UniqueID, UserContext.CurrentUserID, UserContext.Language.Code, notSaveStat, link.SourceItem.ServiceID, idCommunity, link.Id, internalFile.ServiceActionAjax, View.PreLoadedContentView), StandardActionType.Play, true)); } else { actions.Add(new dtoModuleActionControl(RootObject.PlayMultimediaFile(link.Id, item.Id, item.UniqueID, UserContext.CurrentUserID, UserContext.Language.Code, notSaveStat, View.PreLoadedContentView), StandardActionType.Play, true)); } actions.Add(new dtoModuleActionControl(baseUrl + RootObject.EditMultimediaFileSettings(item.Id, link.Id, View.DestinationUrl, View.PreLoadedContentView), StandardActionType.EditMetadata, false)); if (allowDownload) { actions.Add(new dtoModuleActionControl(RootObject.DownloadFileFromModule(item.Id, (long)UserContext.CurrentUserID, UserContext.Language.Code, UserContext.WorkSessionID, View.ServiceID, idCommunity, link.Id, notSaveStat), StandardActionType.DownloadItem, true)); } break; case RepositoryItemType.Folder: break; } actions.Where(a => a.LinkUrl.Contains("//")).ToList().ForEach(a => a.LinkUrl = a.LinkUrl.Replace("//", "/")); return(actions); }
private void DisplayDefaultAction(ModuleLink link, liteBaseCommunityFile item, DisplayActionMode display) { if (typeof(liteCommunityFile) == item.GetType()) { View.ServiceCode = link.DestinationItem.ServiceCode; View.ServiceID = link.DestinationItem.ServiceID; } else { View.ServiceCode = link.SourceItem.ServiceCode; View.ServiceID = link.SourceItem.ServiceID; } int idCommunity = 0; if (item.CommunityOwner != null) { idCommunity = item.CommunityOwner.Id; } Boolean notSaveStat = (display == DisplayActionMode.adminMode); switch (link.Action) { case (int)CoreModuleRepository.ActionType.CreateFolder: View.DisplayCreateFolder(item.Name); break; case (int)CoreModuleRepository.ActionType.UploadFile: View.DisplayUploadFile(item.Name); break; case (int)CoreModuleRepository.ActionType.DownloadFile: View.DisplayItem(item.DisplayName, RootObject.DownloadFileFromModule(item.Id, (long)UserContext.CurrentUserID, UserContext.Language.Code, UserContext.WorkSessionID, View.ServiceID, idCommunity, link.Id, notSaveStat), item.Extension, item.Size, item.RepositoryItemType); break; case (int)CoreModuleRepository.ActionType.PlayFile: View.ServiceCode = link.SourceItem.ServiceCode; View.ServiceID = link.SourceItem.ServiceID; String url = ""; if (typeof(liteModuleInternalFile) == item.GetType()) { liteModuleInternalFile internalFile = (liteModuleInternalFile)item; url = (internalFile.RepositoryItemType == RepositoryItemType.ScormPackage) ? View.GetUrlForPlayScorm(link.Id, internalFile.Id, internalFile.UniqueID, idCommunity, View.ServiceID, internalFile.ServiceActionAjax, notSaveStat) : View.GetUrlForMultimediaFile() + RootObject.PlayMultimediaFileFromModule(internalFile.Id, internalFile.UniqueID, UserContext.CurrentUserID, UserContext.Language.Code, notSaveStat, View.ServiceID, idCommunity, link.Id, internalFile.ServiceActionAjax, View.PreLoadedContentView); } else { url = (item.RepositoryItemType == RepositoryItemType.ScormPackage) ? View.GetUrlForPlayScorm(link.Id, item.Id, item.UniqueID, idCommunity, link.SourceItem.ServiceID, notSaveStat) : View.GetUrlForMultimediaFile() + RootObject.PlayMultimediaFile(link.Id, item.Id, item.UniqueID, UserContext.CurrentUserID, UserContext.Language.Code, notSaveStat, View.PreLoadedContentView); } View.DisplayPlayItem(item.Name, url, item.RepositoryItemType); break; case 0: View.DisplayFolder(item.Name); break; } }