public void InitializeContext() { View.PlayerFileUniqueID = View.PlayerFileUniqueID; int idCommunity = View.PreloadedIdCommunity; if (idCommunity <= 0) { idCommunity = UserContext.CurrentCommunityID; BaseCommunityFile item = Service.GetItem(View.PlayerIdFile); if (item != null && item.CommunityOwner != null) { idCommunity = item.CommunityOwner.Id; } } View.PlayerIdCommunity = idCommunity; View.PlayerIdFile = View.PreloadedIdFile; View.PlayerIdLink = View.PreloadedIdLink; View.PlayerIdModule = View.PreloadedIdModule; View.PlayerItemTypeID = View.PreloadedItemTypeID; View.PlayerSavingStatistics = View.PreloadedSavingStatistics; int idModule = View.PreloadedIdModule; String moduleCode = CurrentManager.GetModuleCode(idModule); if (String.IsNullOrEmpty(moduleCode) || idModule == 0) { idModule = ModuleID; //CurrentManager.GetModuleID(CoreModuleRepository.UniqueID); moduleCode = CoreModuleRepository.UniqueID; } View.PlayerIdModule = idModule; View.PlayerModuleCode = moduleCode; }
private Boolean HasPermissionForRepository(BaseCommunityFile item, int IdUser, int IdCommunity, int idModule) { Boolean result = false; CoreModuleRepository permissions = new CoreModuleRepository(CurrentManager.GetModulePermission(IdUser, IdCommunity, idModule)); result = Service.HasPermissionToSeeRepositoryItem(item.Id, permissions.Administration, permissions.Administration, IdUser); return(result); }
//public void InitView(dtoDisplayItemRepository item) //{ // if (item == null) // View.DisplayNoAction(); // else // AnalyzeAction(item); //} private void AnalyzeAction(ModuleLink pLink) { int ActionID = pLink.Action; BaseCommunityFile item = null; if ((pLink.DestinationItem != null)) { item = Service.GetItem(pLink.DestinationItem.ObjectLongID); if ((item == null) || (pLink.DestinationItem.ObjectLongID == 0 && (ActionID == (int)CoreModuleRepository.ActionType.CreateFolder || ActionID == (int)CoreModuleRepository.ActionType.UploadFile))) { View.DisplayRemovedObject(); } else { int IdCommunity = 0; if (item.CommunityOwner != null) { IdCommunity = item.CommunityOwner.Id; } if (typeof(CommunityFile) == item.GetType()) { View.ServiceCode = pLink.DestinationItem.ServiceCode; View.ServiceID = pLink.DestinationItem.ServiceID; } else { View.ServiceCode = pLink.SourceItem.ServiceCode; View.ServiceID = pLink.SourceItem.ServiceID; } if (item is ModuleInternalFile) { ModuleInternalFile oInternal = (ModuleInternalFile)item; View.DisplayLinkForModule(pLink.Id, IdCommunity, item, oInternal.ServiceActionAjax); } else { View.DisplayLink(pLink.Id, IdCommunity, item); } } } else { View.DisplayNoAction(); } }
public void InitView(long idFolder, Int32 idCommunity) { if (idFolder != 0) { BaseCommunityFile folder = Service.GetItem(idFolder); if (folder == null || folder.isFile) { idFolder = 0; } else if (folder.CommunityOwner != null && folder.CommunityOwner.Id != idCommunity) { idCommunity = folder.CommunityOwner.Id; } } Community comm = CurrentManager.GetCommunity(idCommunity); if (idCommunity > 0 && comm == null) { idCommunity = UserContext.CurrentCommunityID; } View.IdCommunityRepository = idCommunity; View.CommunityName = (idCommunity == 0 || comm == null) ? View.Portalname : comm.Name; View.AllowFolderChange = Service.CommunityHasFolders(idCommunity); View.IdFolder = idFolder; String path = View.BaseFolder; if (idFolder > 0) { BaseCommunityFile folder = Service.GetItem(idFolder); if (folder != null) { path = Service.GetFolderPathName(folder.Id); } } View.FilePath = path; View.DownlodableByCommunity = true; View.VisibleToDonwloaders = true; View.LoadFolderSelector(idFolder, idCommunity, false, false); }
private StatFileTreeLeaf CreateStatFileTreeLeaf(BaseCommunityFile item, Boolean viewPersonal, Boolean viewAdvanced) { StatFileTreeLeaf leaf = new StatFileTreeLeaf() { Id = item.Id, Extension = item.Extension, isVisible = item.isVisible, LinkId = 0, Name = item.DisplayName, ToolTip = "", isScorm = item.isSCORM, UniqueID = item.UniqueID, DownloadCount = item.Downloads, Type = (viewPersonal) ? StatTreeLeafType.Personal : StatTreeLeafType.None }; if ((viewAdvanced)) { leaf.Type = (leaf.Type == StatTreeLeafType.None) ? StatTreeLeafType.Advanced : leaf.Type | StatTreeLeafType.Advanced; } return(leaf); }
public void InitView() { int IdCommunity = UserContext.CurrentCommunityID; long idFile = View.PreloadedFileId; BaseCommunityFile file = Service.GetItem(idFile); if (file != null && file.CommunityOwner != null) { IdCommunity = file.CommunityOwner.Id; } if (UserContext.isAnonymous) { View.SendToSessionExpiredPage(IdCommunity, UserContext.Language.Code); } else { View.BackUrl = View.PreloadedBackUrl; long moduleLinkId = View.PreloadedLinkId; View.ModuleLinkId = moduleLinkId; View.FileId = idFile; if (idFile == 0 && moduleLinkId == 0) { View.ShowUnkownFile(IdCommunity, ModuleID, CoreModuleRepository.UniqueID); } else { Person person = CurrentManager.GetPerson(UserContext.CurrentUserID); ModuleLink link = CurrentManager.Get <ModuleLink>(moduleLinkId); ScormMetadataPermission permission = ScormMetadataPermission.none; if (link == null && file == null) { View.ShowUnkownFile(IdCommunity, ModuleID, CoreModuleRepository.UniqueID); } else if (!file.isSCORM) { View.ShowNoScormFile(file.DisplayName); } else if ((link == null && file != null) || file.GetType() == typeof(CommunityFile)) { IdCommunity = (file.CommunityOwner == null ? 0 : file.CommunityOwner.Id); CoreModuleRepository module = Service.ServicePermission(UserContext.CurrentUserID, IdCommunity); if (Service.HasPermissionToSeeRepositoryItem(idFile, module.Administration, module.Administration, UserContext.CurrentUserID)) { permission = (module.Administration || (module.Edit && file.Owner == person)) ? ScormMetadataPermission.edit : ScormMetadataPermission.view; View.InitializeMetadataControl(file.UniqueID, file.DisplayName, permission); } else { View.ShowNoPermissionToEditMetadata(IdCommunity, ModuleID, CoreModuleRepository.UniqueID, file.DisplayName); } } else { IdCommunity = link.SourceItem.CommunityID; ModuleObject linkedObject = ModuleObject.CreateLongObject(file.Id, file, (int)CoreModuleRepository.ObjectType.ScormPackage, IdCommunity, CoreModuleRepository.UniqueID); permission = View.GetModuleLinkPermission(link.SourceItem.CommunityID, moduleLinkId, link.SourceItem, linkedObject, UserContext.CurrentUserID); if (permission == ScormMetadataPermission.none) { View.ShowNoPermissionToEditMetadata(IdCommunity, link.SourceItem.ServiceID, link.SourceItem.ServiceCode, file.DisplayName); } else { View.InitializeMetadataControl(file.UniqueID, file.DisplayName, permission); } } } } }
public dtoFileDetail GetDetailFile(IList <Int32> UsersId, Int64 FileId, IDictionary <String, String> translateServiceCode) { dtoFileDetail FileInfo = new dtoFileDetail(); // 1. Col_Manager -> ColBaseCommunityFile (per le info sul file). // La proprietà IsInternal mi dice se appartiene ad un servizio o alla comunità. BaseCommunityFile File = Manager.Get <BaseCommunityFile>(FileId); FileInfo.FileName = File.Name; if (File.IsInternal) { FileInfo.ComService = "Service"; FileInfo.Path = ""; } else { FileInfo.ComService = File.CommunityOwner.Name; FileInfo.Path = File.FilePath; } FileInfo.Size = File.Size; FileInfo.LoadedBy = File.Owner.SurnameAndName; FileInfo.LoadedOn = File.CreatedOn; FileInfo.Downloads = File.Downloads; FileInfo.isInternal = File.IsInternal; // 2. da filelink recupero le info sui download (riferiti ad un singolo file) // //var x = (from f in Manager.GetAll<FileDownloadInfo>(f => (FilesIds.Contains(f.File.Id) && UsersIds.Contains(f.Downloader.Id))) // select new { Key = f.Downloader.Id.ToString() + "-" + f.File.Id.ToString() }); IList <Person> Users = Manager.GetAll <Person>(p => (UsersId.Contains(p.Id))).ToList(); FileInfo.DownDetails = new List <dtoUserDownInfo>(); Users.ForEach(delegate(Person prsn) { dtoUserDownInfo UDI = new dtoUserDownInfo(); UDI.downBy = prsn.SurnameAndName; UDI.downOnList = GetdtoDownInfos(prsn.Id, FileId, translateServiceCode); if (UDI.downOnList == null) { UDI.downOnList = new List <dtoDownInfo>(); } UDI.TotalDownload = UDI.downOnList.Count(); //Eventualmente metterlo "fuori" o toglierlo del tutto... FileInfo.DownDetails.Add(UDI); }); // 3. Prendere dalla View un iDictionary(String, String) -> Dictionary(Service.Code, ServiceTranslateName) // per tradurre i nomi dei servizi. // return(FileInfo); }
public void InitViewFromModule(BaseCommunityFile item) { View.InsideOtherModule = true; }
public void InitView(BaseCommunityFile item) { View.InsideOtherModule = false; }
//Public Sub InitView(ByVal oItem As dtoCommunityItemRepository) // Me.View.FileDisplayName = "" // If oItem Is Nothing Then // Me.View.DisplayNoAction() // Else : AnalyzeAction(oItem) // End If //End Sub public void AnalyzeAction(ModuleLink link, iCoreFilePermission permission) { Int32 idAction = link.Action; BaseCommunityFile item = null; if (link.DestinationItem != null) { item = Service.GetItem(link.DestinationItem.ObjectLongID); if (item == null || (link.DestinationItem.ObjectLongID == 0 && (idAction == (Int32)CoreModuleRepository.ActionType.CreateFolder || idAction == (Int32)CoreModuleRepository.ActionType.UploadFile))) { View.DisplayRemovedObject(); } else { Int32 idCommunity = 0; switch (idAction) { case (Int32)CoreModuleRepository.ActionType.DownloadFile: if (typeof(CommunityFile) == item.GetType()) { View.ModuleCode = link.DestinationItem.ServiceCode; View.IdModule = link.DestinationItem.ServiceID; } else { View.ModuleCode = link.SourceItem.ServiceCode; View.IdModule = link.SourceItem.ServiceID; } if (item.CommunityOwner != null) { idCommunity = item.CommunityOwner.Id; } View.FileDisplayName = item.DisplayName; View.DisplayLinkDownload(link.Id, idCommunity, item, permission); break; case (Int32)CoreModuleRepository.ActionType.PlayFile: if (typeof(CommunityFile) == item.GetType()) { View.ModuleCode = link.DestinationItem.ServiceCode; View.IdModule = link.DestinationItem.ServiceID; } else { View.ModuleCode = link.SourceItem.ServiceCode; View.IdModule = link.SourceItem.ServiceID; } if (item.CommunityOwner != null) { idCommunity = item.CommunityOwner.Id; } View.FileDisplayName = item.DisplayName; if (typeof(ModuleInternalFile) == item.GetType()) { ModuleInternalFile intItem = (ModuleInternalFile)item; View.DisplayLinkForPlayInternal(link.Id, idCommunity, item, permission, intItem.ServiceActionAjax); } else { View.DisplayLinkForPlay(link.Id, idCommunity, item, permission); } break; default: View.DisplayNoAction(); break; } } } else { View.DisplayNoAction(); } }
public void InitView() { int IdUser = UserContext.CurrentUserID; int idCommunity = UserContext.CurrentCommunityID; long IdLink = View.PreloadedIdLink; long IdFile = View.PreloadedIdFile; View.BackUrl = View.PreloadedBackUrl; View.IdFile = IdFile; View.IdLink = IdLink; View.AllowSetDefaultDocument = false; BaseCommunityFile item = Service.GetItem(IdFile); if (item != null && item.CommunityOwner != null) { idCommunity = item.CommunityOwner.Id; } if (UserContext.isAnonymous) { View.SendToSessionExpiredPage(idCommunity, UserContext.Language.Code); } else if (item == null) { View.LoadFileNotExist(); } else if (item.RepositoryItemType == RepositoryItemType.Multimedia) { RepositoryItemPermission permissions = new RepositoryItemPermission(); if (IdLink == 0 || item.GetType() == typeof(CommunityFile)) { CoreModuleRepository module = null; if (item.CommunityOwner == null) { module = CoreModuleRepository.CreatePortalmodule(UserContext.UserTypeID); } else if (!item.IsInternal) { module = new CoreModuleRepository(CurrentManager.GetModulePermission(IdUser, item.CommunityOwner.Id, ModuleID)); } else { module = new CoreModuleRepository(); } if (Service.HasPermissionToSeeRepositoryItem(item.Id, module.Administration, module.Administration, IdUser)) { permissions = new dtoDisplayItemRepository(item, module, IdUser, module.Administration).Permission; } } else { ModuleLink link = Service.GetModuleLink(IdLink); permissions = View.GetModuleLinkPermission(link.SourceItem.CommunityID, IdUser, link); } if (permissions.EditSettings) { MultimediaFileTransfer multimedia = Service.GetMultimediaFileTransfer(item); if (multimedia == null) { View.LoadFileNotExist(); } else if (multimedia.MultimediaIndexes.Count == 0) { View.LoadFileWithoutIndex(item); } else { View.AllowSetDefaultDocument = permissions.EditSettings; View.LoadTree(item, (from m in multimedia.MultimediaIndexes select m.Fullname.Replace(item.UniqueID.ToString() + "\\", "")).ToList(), (multimedia.DefaultDocument == null) ? "" : multimedia.DefaultDocument.Fullname.Replace(item.UniqueID.ToString() + "\\", "")); } } else { View.LoadFileNoPermission(); } } else { View.LoadInvalidFileType(item); } }
public void InitView(String plattformId) { long idLink = View.PlayerIdLink; int IdUser = UserContext.CurrentUserID; if (UserContext.isAnonymous) { View.SendToSessionExpiredPage(View.PlayerIdCommunity, View.PreloadedLanguage); } else { Guid playUniqueSessionId = Guid.NewGuid(); View.PlayUniqueSessionId = playUniqueSessionId; String playSessionId = plattformId + "_" + playUniqueSessionId.ToString(); View.PlaySessionId = playSessionId; Boolean allowPlay = false; BaseCommunityFile item = Service.GetItem(View.PlayerIdFile); if (item == null) { View.LoadFileNotExist(); } else { if (idLink == 0 && View.PlayerIdModule == ModuleID) { int idCommunity = View.PlayerIdCommunity; if (item.CommunityOwner != null && idCommunity == 0) { idCommunity = item.CommunityOwner.Id; View.PlayerIdCommunity = idCommunity; } allowPlay = HasPermissionForRepository(item, IdUser, idCommunity, View.PlayerIdModule); } else if (idLink > 0) { allowPlay = lm.Comol.Core.DomainModel.PermissionHelper.CheckPermissionSoft((long)CoreModuleRepository.Base2Permission.DownloadFile, View.GetPermissionToLink(IdUser, idLink, item, View.PlayerIdCommunity)); } if (!allowPlay) { View.LoadFileNoPermission(); } else if (item.RepositoryItemType == DomainModel.Repository.RepositoryItemType.FileStandard && item.RepositoryItemType == DomainModel.Repository.RepositoryItemType.Folder) { View.InvalidFileTypeToPlay(item.RepositoryItemType); } else if (Service.GetItemTransferStatus(item.UniqueID) == DomainModel.Repository.TransferStatus.Completed) { //if (item.RepositoryItemType== DomainModel.Repository.RepositoryItemType.ScormPackage) Boolean autoEvaluate = (from l in CurrentManager.GetIQ <ModuleLink>() where l.Id == idLink && l.AutoEvaluable select l.Id).Any() && View.PlayerSavingStatistics; if (View.PlayerSavingStatistics) { Service.SaveUserAccessToFile(playSessionId, IdUser, item, idLink); } switch (item.RepositoryItemType) { case DomainModel.Repository.RepositoryItemType.ScormPackage: View.LoadFileIntoPlayer(playSessionId, View.PlayerWorkingSessionID, item.UniqueID, IdUser, idLink, item.Id, item.RepositoryItemType); break; case DomainModel.Repository.RepositoryItemType.Multimedia: MultimediaFileTransfer fileTransfer = Service.GetMultimediaFileTransfer(item); if (fileTransfer == null || fileTransfer.DefaultDocument == null) { View.InvalidFileTypeToPlay(item.RepositoryItemType); } else { View.LoadMultimediaFileIntoPlayer(playSessionId, View.PlayerWorkingSessionID, item.UniqueID, IdUser, idLink, item.Id, fileTransfer.DefaultDocumentPath.Replace("\\", "/")); if (autoEvaluate) { View.SaveLinkEvaluation(idLink, IdUser); } } break; } } else { View.LoadFileNoReadyToPlay(item.RepositoryItemType, Service.GetItemTransferStatus(item.UniqueID)); } } } }
public iCoreFilePermission GetCoreFilePermission(iCoreItemPermission itemPermissions, iCoreItemFileLink <long> itemFileLink, Person person) { CoreModuleRepository repository = null; CoreFilePermission permission = new CoreFilePermission(); if (itemPermissions != null && itemFileLink.File != null && itemFileLink.File.Id > 0) { Boolean isMultimedia = (itemFileLink.File.isFile && itemFileLink.File.RepositoryItemType != DomainModel.Repository.RepositoryItemType.FileStandard && itemFileLink.File.RepositoryItemType != DomainModel.Repository.RepositoryItemType.Folder && itemFileLink.File.RepositoryItemType != DomainModel.Repository.RepositoryItemType.None); permission.Download = itemFileLink.File.IsDownloadable && itemPermissions.AllowViewFiles; permission.Play = isMultimedia && itemPermissions.AllowViewFiles; // permission.EditRepositoryVisibility = false; permission.EditStatus = itemPermissions.AllowEdit; permission.EditVisibility = itemPermissions.AllowEdit; permission.Publish = itemPermissions.AllowFilePublish && itemFileLink.File.IsInternal && itemFileLink.Deleted == BaseStatusDeleted.None; permission.Unlink = itemPermissions.AllowEdit && !itemFileLink.File.IsInternal; permission.ViewPersonalStatistics = itemFileLink.File.isSCORM && itemPermissions.AllowViewFiles; permission.ViewStatistics = itemFileLink.File.isSCORM && itemPermissions.AllowViewStatistics; permission.Delete = itemFileLink.File.IsInternal && itemPermissions.AllowDelete && (itemFileLink.Deleted != BaseStatusDeleted.None); permission.UnDelete = itemFileLink.File.IsInternal && (itemFileLink.Deleted != BaseStatusDeleted.None) && itemPermissions.AllowUnDelete; permission.VirtualDelete = itemFileLink.File.IsInternal && (itemFileLink.Deleted == BaseStatusDeleted.None) && itemPermissions.AllowUnDelete; permission.EditMetadata = isMultimedia && ((itemFileLink.File.IsInternal && (itemFileLink.Deleted == BaseStatusDeleted.None) && itemPermissions.AllowEdit)); BaseCommunityFile file = itemFileLink.File; if (!file.IsInternal) { if (file.CommunityOwner == null) { repository = CoreModuleRepository.CreatePortalmodule(UC.UserTypeID); } else { repository = new CoreModuleRepository(Manager.GetModulePermission(person.Id, file.CommunityOwner.Id, Manager.GetModuleID(CoreModuleRepository.UniqueID))); } if (HasPermissionToSeeRepositoryItem(file.Id, repository.Administration, repository.Administration, UC.CurrentUserID)) { Boolean itemOwner = (person == file.Owner); // ATTENZIONE: !! DOVREBBE ANDARE QUESTO MA CREA PROBLEMI AL WCF SERVICES //if (permission.Download==false && itemPermissions.AllowViewFiles ==true){ // permission.Download = (repository.Administration || (file.IsDownloadable && repository.DownLoad)); //} permission.EditRepositoryVisibility = repository.Administration || repository.Edit || (repository.UploadFile && itemOwner); permission.EditRepositoryPermission = repository.Administration || repository.Edit || (repository.UploadFile && itemOwner); permission.EditMetadata = isMultimedia && ((itemFileLink.Deleted == BaseStatusDeleted.None) && itemPermissions.AllowEdit && permission.EditRepositoryPermission); permission.ViewPermission = repository.Administration || repository.Edit || (repository.UploadFile && itemOwner); // _Permission.Delete = oPermission.Administration OrElse oPermission.Edit OrElse (oPermission.DeleteMyFile AndAlso ItemOwner) // _Permission.UnDelete = False //_Permission.VirtualDelete = False // _Permission.Edit = oPermission.Administration OrElse oPermission.Edit OrElse (oPermission.UploadFile AndAlso ItemOwner) // _Permission.EditPermission = oPermission.Administration OrElse oPermission.Edit OrElse (oPermission.UploadFile AndAlso ItemOwner) permission.EditRepositoryPermission = false; } } permission.Link = false; } else if (itemPermissions != null && itemFileLink.File == null || itemFileLink.File.Id == 0) { permission.Delete = itemPermissions.AllowDelete && (itemFileLink.Deleted != BaseStatusDeleted.None); permission.VirtualDelete = (itemFileLink.Deleted == BaseStatusDeleted.None) && itemPermissions.AllowUnDelete; permission.EditVisibility = itemPermissions.AllowEdit; } return((iCoreFilePermission)permission); }